题目:有一个分数序列: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 位小数。