题目描述
有一个分数序列 2/1,3/2,5/3,8/5,13/8,21/13,.... 求这个分数序列的前n项之和。
输入
测试数据有多组,其第一行为一个正整数k(0<k<=90),表示测试数据的组数。每组测试数据为一行,为单个正整数n(0<n<=90)。
| 样例输入
1
|
输出
每组测试数据单独输出有一行:分数序列的和(精确到小数点后4位)。
| 样例输出
3.5000
|
时间限制C/C++语言:1000MS其它语言:3000MS |
内存限制C/C++语言:65536KB其它语言:589824KB |
#include<iostream>
using namespace std;
int main()
{
int k;//测试组数
int n;//测试数据的前n项
cin >> k;
while (k--)
{
cin >> n;
double sum = 0;
double a = 2;
double b = 1;
while (n--)
{
sum = sum + a / b;
double c = a + b;
b = a;
a = c;
}
printf("%.4f\n",sum);
}
return 0;
}