#为什么交换这两行代码会有不一样的结果
题目描述:
5-0. 求序列前N项和(15)
本题要求编写超序,计算序列2/1+3/2+5/3+8/5+...的前N项之和,注意该序列从第2项起,每一项的分子是前一项分子与分母的和,分母
是前一项的分子
输入格式:
输入在一行中给出一个正整数N
输出格式:
在一行中输出部分和的值,精确到小致点后2位,题目保证计算结果不超过双精度范围
输入样例:
28
输出样例:
32.66
CSDN@230180732253
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
double dividend,divisor;
int i;
dividend=2;
divisor=1;
double sum=0.0;
double t;
for(i=0;i<n;i++)
{
sum+=(dividend/divisor);
t=dividend;//
dividend=dividend+divisor;//
divisor=t;
}
printf("%.2f\n",sum);
return 0;
}
正确答案,即上述代码的样例
输入:20
输出:32.66
交换有‘//’的两行后
输入:20
输出:21.00