问题描述
输入一个正整数n,输出2/1+3/2+5/3+8/5+…的前n项之和(该序列从第2项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子),保留2位小数。试编写相应程序。
代码实现
#include<stdio.h>
int main()
{
int n, i;
double num,den;//num为分子,den为分母
double sum = 0.0;
double t;
scanf("%d", &n);
num = 2;
den = 1;
for( i=1; i<=n; i++ ) {
sum = sum + num/den;
t = num;
num = num + den;
den = t;
}
printf("%.2f\n",sum);
return 0;
}
分子和分母要用"double"数据类型,因为后一项的分子是前一项分子分母之和,故而分子和分母会变得越来越大,若用"int"会越界导致运算出错!!!!!!