Python习题集:程序11
程序11题目古典问题有一对兔子从出生后第3个月起每个月都生一对兔子小兔子长到第三个月后每个月又生一对兔子假如兔子都不死问每个月的兔子总数为多少代码def rabbit_total_number(month5): match month: case i if i 0: return 0 case 1: return 1 case 2: return 2 case i if i 3: return rabbit_total_number(month - 1) rabbit_total_number(month - 2) #此处 month 可用 i 代替 case _: return rabbit_total_number(month) if __name__ __main__: month int(input(请输入需要求兔子总数的月份)) print(f第{month}月的兔子总数为{rabbit_total_number(month)}对共{rabbit_total_number(month) * 2}只。)成果请输入需要求兔子总数的月份10第10月的兔子总数为89对共178只。后记1.本例为斐波那契数列问题。思考如下第1个月1对第2个月1对第3个月2对第4个月3对第5个月5对……从第三个月往后就是前1个月month - 1的兔子对数表示上个月已经有的兔子 前2个月month - 2的兔子对数表示能够生育的兔子2.采用递归函数编写3.继续熟练match语句4.说明求到40月份以后速度降低的非常大。过大的月份慎用此程序。