古典问题:有一对兔子,从出生后第 3 个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
解题思路
时间 数量 单位
第0个月 1(2^0) (对) 3*0
第三个月 2(2^1) (对) 3*1
第六个月 4(2^2) (对) 3*2
第九个月 8(2^3) (对) 3*3
......
第3N个月 2^N (对) 3*n
所以可以理解为:
0-3月结束是一个区间,该区间值为1
3-6月结束是一个区间,该区间值为2
······
因为第三个月才会生兔子,所以将月数除以3取整,可以得知在哪个区间里面就可以得到有几只兔子
下面是我的实现方式:
num = input('请输入想要查询的是第几个月')
num = int(num) #通过input方法获取的是字符型,需要转化为整数型才可以进行逻辑运算
a = num//3
print(2**a)
输出结果为
请输入想要查询的是第几个月20
64