题目
本题要求编写程序,计算序列 2/1+3/2+5/3+8/5+… 的前N项之和。注意该序列从第2项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子。
输入格式:
输入在一行中给出一个正整数N。
输出格式:
在一行中输出部分和的值,精确到小数点后两位。题目保证计算结果不超过双精度范围。
代码
#include<stdio.h>
int f(int N){
double sum1=0;
double i=1,j=2,k;
int count;
for(count=0;count<N;count++){
sum1+=j/i;
k=j;
j=i+j;
i=k;
}
return sum1*1000;
}
int main(){
int N,sum,point,r;
scanf("%d",&N);
sum=f(N);
point=sum%1000;
sum/=1000;
r=point%10;
point/=10;
if(r>5){
point++;
}
if(point<10){
printf("%d.0%d\n",sum,point);
}else{
printf("%d.%d\n",sum,point);
}
return 0;
}