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

Java 計算分數數列前 20 項和:2/1 + 3/2 + 5/3 + 8/5 + ...

     編輯:Java 相關知識

數列規律

分子分母均為斐波那契數列:
項1: 2/1 (F3/F2)
項2: 3/2 (F4/F3)
項3: 5/3 (F5/F4)
...
項n: F(n+2)/F(n+1)

遞推計算


public class FractionSeriesSum {
    public static void main(String[] args) {
        double fm = 1.0; // 分母 F2
        double fz = 2.0; // 分子 F3
        double sum = 0.0;
        for (int i = 0; i < 20; i++) {
            sum += fz / fm;
            // 更新到下一項
            double nextFz = fz + fm; // F(n+3) = F(n+2) + F(n+1)
            fm = fz;                 // 分母變為上一項分子
            fz = nextFz;             // 分子變為下一個斐波那契數
        }
        System.out.println("前20項和: " + sum); // 約 32.660261
    }
}

關鍵點

  • 只需兩個變量滾動更新,空間 O(1)
  • 雙精度足夠 20 項精度;高精度需求可用 BigDecimal
  • 數列收斂於黃金比例 φ ≈ 1.618,前 20 項和約 20 * φ ≈ 32.36,實際略大因前項偏大
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved