母羊生羊问题解决


问题是这样的: 1只母羊,在第2年和第4年生下小母羊,在第5年死去,问N年后有多少母羊?

想了很久,终于有了一个思路,不过目前效率不高

给出代码:

a = [1]
def sheep(N):
    N = int(N)
    if N == 1:
        return a
    for n,k in enumerate(a):
        a[n] += 1
    for n,k in enumerate(a):
        if k == 2:
            a.append(1)
        if k == 4:
            a.append(1)
    return sheep(N-1)

while True:
    b = sheep(input('请输入年份:\n'))
    c = [i for i in b if i < 5]
    print('母羊总数: %d'%len(c))
    a = [1]
Author: honmaple