数列求和
问题描述
有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...
求出这个数列的前n(2<=n<=30)项之和。
输入说明
一个整数n
输出说明
输出一个实数表示数列前n项之和,结果保留2位小数
输入样例
2
输出样例
问题描述
有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...
求出这个数列的前n(2<=n<=30)项之和。
输入说明
一个整数n
输出说明
输出一个实数表示数列前n项之和,结果保留2位小数
输入样例
2
输出样例
3.5
#pragma warning(disable:4996)
#include<stdio.h>
#include<math.h>
/*
int main()
{
float f[31],g[31];
float sum;
int k,n;
while (scanf("%d", &n) != EOF)
{
f[0] = 1;
f[1] = 2;
g[0] = 2;
g[1] = 3;
sum = 0;
for (int i = 2; i < n; i++)
{
f[i] = f[i - 1] + f[i - 2];
//g[i - 2] = f[i - 1];
}
for (int j = 2; j < n; j++)
g[j] = g[j - 1] + g[j - 2];
for (k = 0; k < n; k++)
sum +=g[k] / f[k];
printf("%.2f\n", sum);
}
return 0;
}
*/
//法二:
int main()
{
int n, a = 2, b = 1, t;
float sum ;
while (scanf("%d", &n) != EOF)
{
sum = 0;
for (int i = 0; i < n; i++)
{
sum += 1.0*a / b;
t = a;
a = a + b;
b = t;
}
printf("%.2f\n", sum);
}
return 0;
}