首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C語言計算分數數列前20項和:2/1+3/2+5/3+8/5+…

     編輯:關於C語言

數列規律

分子分母皆為費波納契數列:
a₁=2/1, a₂=3/2, a₃=5/3, a₄=8/5 …
遞推關係:分子ₙ = 分子ₙ₋₁ + 分母ₙ₋₁,分母ₙ = 分子ₙ₋₁。

完整程式碼

#include 

double qiuhe() {
    int a = 1, b = 1;      // 初始分母=1, 分子=1(對應第0項)
    double sum = 0;
    for (int i = 1; i <= 20; i++) {
        int t = a + b;     // 新分子
        sum += (double)t / a;
        b = a;             // 舊分子成為新分母
        a = t;             // 新分子成為下一輪分子
    }
    return sum;
}

int main() {
    printf("%lf\n", qiuhe());
    return 0;
}

變數對應表

迴圈a(分子)b(分母)t(新分子)本項值累加和
11122/1=22
22133/2=1.53.5
33255/3≈1.6675.167
………………

執行結果

32.660261

(雙精度浮點近似值)

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved