【經典100題】題目11 兔子問題
阿新 • • 發佈:2018-12-22
題目
有一對兔子,從出生後的第三個月起,每個月都生一對兔子,小兔子再長三個月後每個月又生一對兔子!假如兔子都不死,請問每個月的兔子的數量是多少?
程式分析
該問題是典型的遞迴問題,看下錶:
經過月份 | 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