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

C 語言數列求和:分數序列 2/1 + 3/2 + 5/3 + 8/5 + ... 前 20 項

     編輯:關於C

數列規律

分子分母遞推:
a₁=2, b₁=1
aₙ = aₙ₋₁ + bₙ₋₁
bₙ = aₙ₋₁
即斐波那契數列變體:2/1, 3/2, 5/3, 8/5, 13/8, ...

代碼實現

#include <stdio.h>

int main() {
    double a = 2, b = 1, sum = 0;
    for (int i = 1; i <= 20; ++i) {
        sum += a / b;
        double next_a = a + b;
        b = a;
        a = next_a;
    }
    printf("前20項和 = %lf\n", sum);
    return 0;
}

結果

前20項和 = 32.660264

關鍵點

  • 用臨時變量保存 a 更新前的值,避免順序錯誤;
  • double 保證精度;
  • 數列通項為 F_{n+2}/F_{n+1},和無簡單閉式,迭代最直接。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved