将一对刚出生的兔子(一只雄性,一只雌性)放入田间.兔子能够在一个月的时候交配,这样在第二个月结束时,每对产生两对新的兔子,然后死亡.
注意:在第0个月,有0对兔子.在第1个月,有1对兔子.
>编写程序 – 使用while循环 – 从用户获取月数并在该月末打印兔子对的数量.
>在同一个cpp文件中,编写一个递归函数rabbits(),它将月份作为输入,并返回该月末兔子对的数量.
>在主程序中,使用用户输入的数字调用函数rabbits().输出两个计算(即通过循环获得的计算和递归函数返回的计算)并查看它们是否相等.
描述是相当自我解释的.我已经有了主程序(普通的Fibonacci函数),但我无法弄清楚如何实现兔子在繁殖后死亡.我已经知道,每隔一个月,兔子的数量翻倍,但我不知道如何实施它.提前致谢.
#include <iostream> using namespace std; int rabbits (int); int main () { int x,month,result,counter = 0,rab_now,rab_lastmonth = 1,rab_twomonthsago = 0; cout << "Please enter the month \n\n"; cin >> month; cout << "\n"; result = rabbits (month); while (counter <= month - 1) { rab_now = rab_lastmonth + rab_twomonthsago; x = rab_lastmonth; rab_lastmonth = rab_now; rab_twomonthsago = x; counter++; } cout << "At the end of month " << month << ",there will be " << rab_lastmonth << " pairs of rabbits" << endl; system("PAUSE"); return 0; } int rabbits (int month) { if (month == 0) { return 0; } else if (month == 1) { return 1; } else { return (rabbits (month + 1) + rabbits (month - 2)); } }