1. 程式人生 > >【經典100題】題目11 兔子問題

【經典100題】題目11 兔子問題

題目

有一對兔子,從出生後的第三個月起,每個月都生一對兔子,小兔子再長三個月後每個月又生一對兔子!假如兔子都不死,請問每個月的兔子的數量是多少?


程式分析

該問題是典型的遞迴問題,看下錶:

經過月份 month(1) month(2)           month(3)         month(4)            month(5)        month(6)
數量 1 1 month(1)+month(2)=2 month(2)+month(3)=3 month(3)+month(4)=5 month(4)+month(5)=8

C語言實現

#include<stdio.h>

int rabbit(month);
void main()
{
	for (int i =1; i <=12; i++)
	{
		printf("第%d個月時的兔子的總量:%d\n" ,i, rabbit(i));
	}
}

int rabbit(month)
{
	if (month < 1)
		return 1;
	if (month == 1)
		return 1;
	if (month == 2)
		return 1;
	if (month > 2)
		return rabbit(month - 1) + rabbit(month - 2);
}

執行結果:

第1個月時的兔子的總量:1
第2個月時的兔子的總量:1
第3個月時的兔子的總量:2
第4個月時的兔子的總量:3
第5個月時的兔子的總量:5
第6個月時的兔子的總量:8
第7個月時的兔子的總量:13
第8個月時的兔子的總量:21
第9個月時的兔子的總量:34
第10個月時的兔子的總量:55
第11個月時的兔子的總量:89
第12個月時的兔子的總量:144
請按任意鍵繼續. . .

 


python語言實現

def rabbit(month):
    if month == 1:
        return 1
    if month == 2:
        return 1
    if month > 2:
        return rabbit(month - 1) + rabbit(month - 2)
    else:
        print("error")
    
for i in range(1,13):
    print("第%d個月時的兔子的總量:%d" %(i,rabbit(i)))     

執行結果:

第1個月時的兔子的總量:1
第2個月時的兔子的總量:1
第3個月時的兔子的總量:2
第4個月時的兔子的總量:3
第5個月時的兔子的總量:5
第6個月時的兔子的總量:8
第7個月時的兔子的總量:13
第8個月時的兔子的總量:21
第9個月時的兔子的總量:34
第10個月時的兔子的總量:55
第11個月時的兔子的總量:89
第12個月時的兔子的總量:144


★finished by songpl,2018.12.10