有一个分数序列:2/1,3/2,5/3,8/5,13/8,21/13,等等。求出这个数列的前n项和。
输入
输入有若干行,每行一个整数n(0<=n<=1000),表示数列的项数。n=0表示结束。
输出
每行对应输出前n项的和。结果保留2位小数。
样例输入
1
5
1
5
样例输出
2.00
8.39
供参考:
#include <stdio.h>
int main()
{
int n, i, k, j, t;
double s;
while (scanf("%d", &n) == 1 && n != 0)
{
i = 1; k = 1; j = 2; s = 0;
while (i <= n)
{
s += 1.0 * j / k;
t = j + k;;
k = j;
j = t;
i++;
}
printf("%.2f\n", s);
}
return 0;
}
#include <stdio.h>
int main()
{
int a = 1;
int b = 2;
int n = 0;
float sum = 0;
int N;
scanf("%d", &N);
while (n < N)
{
sum += b / (float)a;
printf("%d/%d", b, a);
if (n != N-1) printf("+");
n++;
b = a + b;
a = b - a;
}
printf("=%f\n", sum);
return 0;
}