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

斐波那契兔子問題:C 語言遞歸與迭代實現

     編輯:程式設計綜合問答

問題描述

一對兔子,出生後第 3 個月起每月產一對;子兔長至第 3 月也開始產。假設不死,求每月兔子總對數。

規律分析

月份 n 的總對數 = 月份 n-1 總數 + 月份 n-2 總數(即斐波那契數列)。

  • F(1)=1, F(2)=1
  • F(n)=F(n-1)+F(n-2) (n>=3)

C 語言實現(迭代法,O(n))

#include <stdio.h>

int main() {
    int month;
    printf("請輸入月份: ");
    scanf("%d", &month);

    if (month <= 0) return 0;
    long long a = 1, b = 1, c;
    if (month == 1 || month == 2) {
        printf("第 %d 月兔子總對數: 1\n", month);
        return 0;
    }
    for (int i = 3; i <= month; i++) {
        c = a + b;
        a = b;
        b = c;
    }
    printf("第 %d 月兔子總對數: %lld\n", month, b);
    return 0;
}

參考資料

詳細數學推導與多種語言實現

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