题目:有一个分数序列:2/1 + 3/2 + 5/3 + 8/5 +...,求出这个数列的前 20 项之和。
背景:无。
思路:采用 for 循环,利用数学知识
分子:第 n 项 = 第 n - 1 项 + 第 n - 2 项。
分母:第 n 项 = 第 n - 1 项 + 第 n - 2 项。
代码:
#include<stdio.h>
int main()
{
double x = 2; //初始化分子
double y = 1; //初始化分母
double sum = 0; //求和
double a = 1, b = 1;
int i = 0;
for (i = 0; i < 20; i++)
{
sum =sum + x / y;
x = x + y;
y = a + b;
a = b;
b = y;
}
printf("%lf\n", sum);
return 0;
}
细节:注意打印是 %lf 输出 6 位小数。