再做以前的题目,发现解法其实好多种,虽然万变不离其宗,可是收获还是好多。。
05-0. 求序列前N项和(15)
时间限制
400 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
张彤彧(浙江大学)
本题要求编写程序,计算序列 2/1+3/2+5/3+8/5+... 的前N项之和。注意该序列从第2项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子。
输入格式:
输入在一行中给出一个正整数N。
输出格式:
在一行中输出部分和的值,精确到小数点后2位。题目保证计算结果不超过双精度范围。
输入样例:20输出样例:
32.66
#include<stdio.h>
main()
{
double a,b,c,d,e;
int N;
while(scanf("%d",&N)!=EOF)
a=1;
b=2;
d=b/a;
for(e=1;e<N;e++)
{
c=a+b;
a=b;
d=d+c/a;
b=c;
}
printf("%.2lf",d);
return 0;
}
解法二:
#include<stdio.h>
int main() {
int N;
while(scanf("%d",&N)!=EOF) {
double sum=0,a=1,b=2,c;
for(int count=0; count<N; count++) {
sum+=b/a;
c=a+b;
a=b;
b=c;
}
printf("%.2lf",sum);
}
return 0;
}
嗯,第一次自己写成功的死循环~值得庆祝!