问题题目:如果一对兔子每月生一对兔子;一对新生兔,从第二个月起就开始生兔子;假定每对兔子都是一雌一雄,试问一对兔子,第 n 个月能繁殖成多少对兔子?(举例,第1个月是1对兔子,第2个月是2对兔子)
可知,这个问题用递归算法对程序员最友好,但对计算机并不友好。由于本人能力有限,就采用递归算法: 创建主函数:**solution(int A) ** 主体部分: if(A==1)return 1; if(A==2)return 2; return solution(-1)+solution(A-2)
A=1,即为第一个月,返回值1,就是一对兔子。 A=2同理。当A=3,的时候,共有第一个月的一对和它生的两对兔子(二月生的兔子还不具备生育能力)即A(3)=A(1)+A(2); A=4的时候,第四个月的时候,第一对兔子生了3对,第二个月生的兔子生一对, 即A(4)=A(3)+A(2); 可得A(n)=A(n-1)+A(n-2);