數列:2/1, 3/2, 5/3, 8/5, 13/8, 21/13 ...
觀察規律:分子分母皆為費波納契數列(Fibonacci),
第 k 項 = F(k+2) / F(k+1),其中 F(1)=1, F(2)=1, F(3)=2...
F(i+2)/F(i+1)(雙精度浮點)。#include <stdio.h>
int main() {
double fib[23]; // 索引 1~22
fib[1] = fib[2] = 1.0;
for (int i = 3; i <= 22; i++)
fib[i] = fib[i-1] + fib[i-2];
double sum = 0.0;
for (int k = 1; k <= 20; k++) {
double term = fib[k+2] / fib[k+1];
sum += term;
printf("第 %2d 項: %.10f / %.10f = %.10f\n", k, fib[k+2], fib[k+1], term);
}
printf("\n前 20 項和 = %.10f\n", sum);
return 0;
}
第 1 項: 2.0000000000 / 1.0000000000 = 2.0000000000
第 2 項: 3.0000000000 / 2.0000000000 = 1.5000000000
第 3 項: 5.0000000000 / 3.0000000000 = 1.6666666667
...
第 20 項: 17711.0000000000 / 10946.0000000000 = 1.6180339887
前 20 項和 = 32.6602150796
此數列收斂於 黃金比例 φ = (1+√5)/2 ≈ 1.6180339887。前 20 項和約為 20 * φ - 某常數,隨項數增加平均值趨近 φ。
int 存費波納契數第 20 項後會溢位(F(22)=17711 尚可,F(47) 超 21 億),建議用 long long 或 double。double:(double)fib[i+2] / fib[i+1]。