有一個分數序列,求出這個數列的前20項之和。
\(\frac{2}{1}\),\(\frac{3}{2}\),\(\frac{5}{3}\),\(\frac{8}{5}\),\(\frac{13}{8}\),\(\frac{25}{13}\),...
答案解析:
從題目當中可以看出來,下一個分式當中的分子為上一個分式中分子和分母的和,分母為上一個分式的分子。通過這個規律不難推出下一個分式的分子和分母,需要注意的是,保存分式的結果不能使用到整數,因為有可能會有小數的存在,所以我們需要選用浮點數double
代碼示例:
#include <stdio.h>
//定義循環次數
#define COUNT 20
int main()
{
//定義第一個分式的分子為a, 值為2; 定義分母為b,值為1
//定義相加的和為sum,初始值為0
double a = 2, b = 1, sum = 0;
double temp;
for (int i = 0; i < COUNT; i++)
{
sum += a / b;
//記錄前一項分子
temp = a;
//前一項分子與分母之和為后一項分子
a = a + b;
//前一項分子為后一項分母
b = temp;
}
printf("前%d項之和為:sum=%9.7f\n", COUNT, sum);
return 0;
}