题目描述
有一个分数序列:2/1,3/2,5/3,8/5,13/8,…编写程序求出这个序列的前 n 项之和。
输入
一个正整数 nn,1≤n≤10
输出
该序列前 n项和,结果保留小数后 6 位。
输入输出样例
样例输入 #1
3
样例输出 #1
5.166667
提示
此题用 double
类型。
#include <stdio.h>
int main() {
int n;
int a = 2, b = 1;
double s = 0;
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
s += a / (double)b; // 计算当前项并累加到 s 中
int temp = a; // 临时变量用于交换
a = a + b; // 更新 a 为斐波那契数列的下一个值
b = temp; // 更新 b 为之前的 a
}
printf("%.6lf\n", s); // 输出结果,保留6位小数
return 0;
}
编译结果: