Description
有一个分数序列:2/1,3/2,5/3,8/5,13/8,21/13... 求出这个数列的前n项之和。
Input
多测试用例,每个测试用例一行,每行是一个正整数n
Output
为每个测试用例单独输出一行:该数列的前n项之和。结果均保留小数点后10位。
Sample Input
1
2
3
Sample Output
2.0000000000
3.5000000000
5.1666666667
#include
int main(void){
double i, n, j, x, sum, tem, x1, x2, y1, y2, y;
while(scanf("%lf", &n)!=EOF&&n>=0){
x1=2; x2=3; y1=1; y2=2; sum=0;
if(n==0) sum=-3.5;
else if(n==1) sum=-1.5;
else if(n==2) sum=0;
else
for(i=1; i<=n-2; i++){
x=x1+x2; x2=x1; x1=x; y=y1+y2; y2=y1; y1=y;
sum=sum+x/y;
}
printf("%.10f\n", sum+3.5);
}
return 0;
}
OJ反馈信息:wrong answer