本题要求编写程序,计算序列 2/1+3/2+5/3+8/5+... 的前N项之和。注意该序列从第2项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子。
输入格式:
输入在一行中给出一个正整数N。
输出格式:
在一行中输出部分和的值,精确到小数点后两位。题目保证计算结果不超过双精度范围。
输入样例:
20
输出样例:
32.66
#include<stdio.h>
int main()
{
double n;
double sum=0;
scanf("%lf",&n);
int i,j,k,temp;
j=2;
k=1;
for(i=1;i<=n;i++)
{
sum=sum+(1.0*j)/(k*1.0);
temp=j;
j=k+j;
k=temp;
}
printf("%.2f",sum);
return 0;
}
但是这个程序存在一个bug,就是当我提交时候,提示我较大N不行,然后我把输入的N,改为double类型的,提示依旧。 如果有哪位同学知道原因,可以留言交流一下。