本来想用递归算法,但本人不太擅长递归编程,所以总结出简单的逻辑规律,用简单的方式循环迭代。附python代码,以下文字为变量的含义,具体思路看代码
归纳:所有兔子就三种,每个月更新三种的数量,迭代完全部相加即为所有兔子数量
k3-第三个月及以上,可生育
k2-第二个月,不可生育
k1-第一个月,小萌新

import sys
for s in sys.stdin:
    m = int(s)
    k3 = 0
    k2 = 0
    k1 = 0
    for i in range(m):
        k3 = k3 + k2
        k2 = k1
        if k3==0 and k2 == 0:
            k1 = 1
        elif k3==0 and k2 == 1:
            k1 = 0
        else:
            k1 = k3

    print(k1+k2+k3)