【フィボナッチ数列】ウサギの繁殖

問題の説明:

ウサギが1組いて、生後3ヶ月目からは毎月1組のウサギが生まれ、3ヶ月目以降は毎月1組のウサギが生まれます。ウサギが死んでいない場合は、最初の20匹を出力してください。 months 月ごとのウサギの数。

アイデアの分析:

コード:

#include<iostream>
using namespace std;
int geshu(int month) {
    if (month < 1) {
        cout << "输入错误!" << endl;
        return 0;
    }else if (month == 1 || month == 2){
        return 1;
    }else if (month > 2) {
        int temp[100];
        temp[0] = temp[1] = 1;
        //每调用一次递归,就要从头重新计算一次值,效率太低,重复性太高。
        //通过for循环,将值存储到数组中,这样可以减少递归的调用次数,提高代码效率。
        for (int i = 2; i < month; i++) {
            temp[i] = temp[i - 1] + temp[i - 2];
        }
        return temp[month - 1];
    }
}
int main() {
    for (int i = 1; i <= 20; i++) {
        cout <<geshu(i) << endl;
    }
    return 0;
}

おすすめ

転載: blog.csdn.net/qq_59942266/article/details/129271205