引入
求序列和:输入一个正整数 n,输出 2/1+3/2+5/3+8/5 +…的前 n 项之和,
保留 2 位小数。该序列从第 2 项起,每一项的分子是前一项分子与分母的和, 分母是前一项的分子
分析
求序列和就是找规律,该序列从第 2 项起,每一项的分子是前一项分子与分母的和, 分母是前一项的分子,同时需要注意类型转换问题
代码
#include <stdio.h>
int main(void) {
/**
求序列和:输入一个正整数 n,输出 2/1+3/2+5/3+8/5 +…的前 n 项之和,
保留 2 位小数。该序列从第 2 项起,每一项的分子是前一项分子与分母的和, 分母是前一项的分子
*/
int n;
printf("Entry n :");
scanf("%d",&n);
/**
找规律,从第二项开始前一项的分子和分母相加是后一项的分子,前一项的分子是后一项的分母
我们将第二项设置为第一项
*/
//定义求和变量
double sum,item;
//定义自增变量
int i,fz = 3,fm = 2,temp;
//分段
if(n >= 3){
for(i = 1; i <= n-2; i++){
temp = fz;
fz = fz + fm;
fm = temp;
//分子、分母都是int类型,如果fz/fm会出现问题,我们这里需要写成fz/fm*1.0
item = 1.0*fz/fm;
sum+=item;
}
sum+=3.5;
printf("%.2lf",sum);
}else if(n == 2){
sum = 3.5;
printf("%.2lf",sum);
}else if(n == 1){
sum = 2.0;
printf("%.2lf",sum);
}
return 0;
}