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

C 語言費波納契數列區間輸出:陣列預計算完整示例

     編輯:程式設計疑難解答

標準解法

#include 
int main() {
    int f[50];
    f[0] = 1; f[1] = 1;
    int i = 2;
    while (1) {
        f[i] = f[i-1] + f[i-2];
        if (f[i] < 0 || f[i] > 1000000) break; // 防溢位
        i++;
    }
    int len = i;

    int m, n; scanf("%d %d", &m, &n);
    if (m > n) { int t=m; m=n; n=t; } // 保證 m <= n

    int first = 1;
    for (int j = 0; j < len; j++) {
        if (f[j] >= m && f[j] <= n) {
            if (!first) printf(" ");
            printf("%d", f[j]);
            first = 0;
        }
    }
    printf("\n");
    return 0;
}

關鍵點總結

  • 陣列大小 50 足夠覆蓋 int 範圍內所有費氏數 (第 46 項溢位)。
  • 生成階段即檢測溢位 (f[i] < 0) 與上界。
  • 輸入可能 m > n,先交換。
  • 輸出格式控制:首項無前導空格,項間單空格,末尾換行。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved