Problem H: 计算数列和2/1,3/2,5/3,8/5......
Time Limit: 1 Sec Memory Limit: 64 MB
Submit: 17452 Solved: 10120
Description
有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13,…… 计算这个数列的前n项和。注意:C语言中整数/整数的结果为整数;需要用(float)强制转换为实型或乘以1.0后进行计算。
Input
输入一个正整数n。
Output
输出数列的前n项和(保留两位小数),输出格式可为:printf("s=%.2f\n",..);。
Sample Input
10
15
20
Sample Output
s=16.48
s=24.57
s=32.66
HINT
C语言中整数/整数的结果为整数;注意用(float)强制转换为实型或乘以1.0后进行计算。
有些可能使用double,然后i作为循环变量去和n比较,但是这样是不行的。因为double是双精度的,比较大小不能==或者!=或者<>。注意一下就行了。
代码:
#include<stdio.h>
int main(void)
{
float a,b,c,n,k,sum,i;
while(scanf("%f",&n)!=EOF)
{
sum=0;a=2;b=1;
for(i=1;i<=n;i++)
{
c=a/b;
sum+=c;
k=b;
b=a;
a=k+a;
}
printf("s=%.2f\n",sum);
}
return 0;
}