PTA 中M22秋C、Java入门练习 7-34 求分数序列前N项和(15分)
本题要求编写程序,计算序列 2/1+3/2+5/3+8/5+... 的前N项之和。注意该序列从第2项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子。
输入格式:
输入在一行中给出一个正整数N。
输出格式:
在一行中输出部分和的值,精确到小数点后两位。题目保证计算结果不超过双精度范围。
样例">输入样例:
20
输出样例:
32.66
代码长度限制 16 KB
时间限制 400 ms
内存限制 64 MB
#include<stdio.h>
int main(){
double sum,fenz,fenm;
int i,N;
while(scanf("%d",&N)!=EOF){ //N项分数相加
sum=0; /*定义初始值*/
fenz=2;
fenm=1;
for(i=0;i<N;i++){
sum+=1.0*fenz/fenm; //累加
fenz=fenz+fenm; /*分子分母变化*/
fenm=fenz-fenm;
}
printf("%.2lf\n",sum); //输出
}
return 0;
}