古典問題:有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第三個月 後每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數爲多少?

2020-08-11 21:03:26

題目:古典問題:有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第三個月 後每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數爲多少?

1、從題目我們可以得出以下結論
 *	第一個月:1對 
 *	第二個月:1對
 *	第三個月:2對 
 *	第四個月:3對
 *	第五個月:5對 
 *	第六個月:8對
*	第七個月:13對
 *	 第八個月:21對

每個月的數是前面第一個數加上前面第二個數的和,這道題主要是考驗對遞回的瞭解,屬於一道比較簡單的遞回演算法題

int cal_sum(int sum)
{
	if(sum<3)
		return 1;
		
	//遞回,一直到sum小於3開始返回
	return cal_sum(sum-1)+cal_sum(sum-2);
}


int main(int argc,const char **argv)
{
	printf("請輸入月數:\n");
	
	int a;
	//從鍵盤獲取一個int型別數
	scanf("%d",&a);

	//列印遞回後的最終結果
	printf("第%d個月有:%d對小兔子\n",a,cal_sum(a));
	
	return 0;
}