首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C 語言數列求和:2/1、3/2、5/3 前 n 項總和實作與除錯

     編輯:程式設計綜合問答

數列規律

數列為:2/1、3/2、5/3、8/5、13/8……分子與分母皆遵循類似費氏數列的遞推關係,即下一項的分子 = 前兩項分子之和,分母同理。

程式碼範例

#include <stdio.h>

int main() {
    int n;
    while (scanf("%d", &n) != EOF) {
        double x1 = 2, x2 = 3;   // 分子
        double y1 = 1, y2 = 2;   // 分母
        double sum = 0;

        if (n >= 1) sum += x1 / y1;
        if (n >= 2) sum += x2 / y2;

        for (int i = 3; i <= n; i++) {
            double x = x1 + x2;
            double y = y1 + y2;
            sum += x / y;
            x1 = x2; x2 = x;
            y1 = y2; y2 = y;
        }

        printf("%.10f\n", sum);
    }
    return 0;
}

常見錯誤答案(Wrong Answer)原因

  • 輸出格式不符,題目要求小數點後 10 位,必須使用 %.10f。
  • 多組測試資料未正確重設變數,導致前一組結果影響下一組。
  • n = 1 或 n = 2 的邊界條件處理不當。
  • 使用浮點數累加時,未注意精度問題。

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