Python小测试感兴趣试一下

你家有1对兔子,一公一母,不考虑近亲结婚,第三个月开始每个月会生一对兔子,
所生的兔子和之前兔子相同属性,请问第20个月多少对兔子?

def rabbit(n):
    if n < 3:
        return 1
    return rabbit(n-1) + rabbit(n-2)

rabbit(20)
6765
  • 这篇博客: 菜鸟教程Python教程100例(一)(持续更新)中的 8.古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    n = int(input('请输入月数:'))
    if n == 1 or n == 2:
        print('第%d个月有%d对兔子' % (n, 1))
    else:
        i = j = 1
        for x in range(n - 3):
            i, j = j, i + j
        print('第%d个月有%d对兔子' % (n, (i + j)))
    

我是这么写的,不知道对不对:

total = 1

def birth(month):
    if month<3:
        return
    for month in range(1, month+1):
        if month < 3:
            continue
        else:
            global total
            total += 1
            birth(month-1)

birth(20)
print(total)