目录
1.例题5-1-1 连续自然数求和
#include<stdio.h>
int main(){
int sum = 0, i = 100;
while(i){
sum+=i;
i--;
}
printf("%d\n",sum);
return 0;
}
2.例题5-1-2 连续自然数求和
#include<stdio.h>
int main(){
int sum = 0, i = 100;
do{
sum+=i;
i--;
}while(i);
printf("%d\n",sum);
return 0;
}
3.例题5-1-3 连续自然数求和
#include<stdio.h>
int main(){
int sum = 0;
for (int i=1; i<101; i++){
sum+=i;
}
printf("%d\n",sum);
return 0;
}
4.例题5-1-4 连续自然数求和
#include<stdio.h>
int main(){
int sum = 0, i = 0;
while(1){
i+=1;
sum+=i;
if (i==100){
break;
}
}
printf("%d\n",sum);
return 0;
}
5.例题5-1-5 连续自然数求和
#include<stdio.h>
int sum(int a){
int sums;
sums = 0;
while(a){
sums+=a;
a--;
}
return sums;
}
int main(){
for(int i=40; i<50; i++){
int sums = sum(i);
if(sums>1000){
printf("%d\n",i);
break;
}
}
return 0;
}
6.例题5-6 矩阵输出
这一题有两种解法,我想到的是第一种,比较笨,后面是在网上看到的一种,都贴上来
#include<stdio.h>
int main(){
int martix[4][5];
for (int i=0; i<4; i++){
for (int j=0; j<5; j++){
martix[i][j] = (j+1)*(i+1);
}
}
for (int i=0; i<4; i++){
for (int j=0; j<5; j++){
printf("%3d",martix[i][j]);
}
printf("\n");
// printf("\n");
}
return 0;
}
//#include <cstdio>
//int main()
//{
// for(int i=1;i<=4;i++){
// printf("%3d%3d%3d%3d%3d\n",i*1,i*2,i*3,i*4,i*5);
// }
// return 0;
//}
7.例题5-7 求圆周率pi的近似值
依然是两种方法, 前面比较笨的是我的,后面是网上大佬的
同时注意一点,10的-6次方携程1e-6比0.000001的精度高
#include<stdio.h>
#include<math.h>
int main(){
double pi;
double i = 1;
while (1){
double x = 1/(2*i-1);
if (fabs(x) > 1e-6){
if (fmod(i,2)!=0){
pi+= x;
}else{
pi-= x;
}
i++;
}else{
break;
}
}
printf("PI=%.8f\n",4*pi);
// printf("%10.8f\n",4*pi);
return 0;
}
//#include <cstdio>
//#include <cmath>
//int main()
//{
// double sum=0;
// for(int i=1;;i++)
// {
// if(1/(2.0*i-1)<1e-6)
// break;
// sum+=1/(2.0*i-1)*pow(-1.0,1.0*(i-1));
// }
// printf("PI=%10.8f\n",4*sum);
//
// return 0;
//}
8.例题5-8 Fibonacci数列
#include<stdio.h>
#include<math.h>
int fibonacci(int n){
if (n==2|n==1){
return 1;
}else{
return fibonacci(n-1)+fibonacci(n-2);
}
}
int main(){
int n;
scanf("%d",&n);
int a = fibonacci(n);
printf("%d",a);
return 0;
}
9.习题5-10 分数序列求和
#include<stdio.h>
#include<math.h>
int main(){
double sum = 2.0;
double a = 1, b = 2, temp;
for (int i=1; i<20; i++){
temp = b;
b=a+b;
a = temp;
sum+= b/a;
}
printf("%.6f",sum);
return 0;
}