Python中的递归求年龄问题

【问题描述】

假设现在有N个人,第一个人3岁,第二个人x岁(未知),第三个人的年龄是前两个人年龄之和,以此类推直到第N个人。尝试编写递归函数,当输入第2个人的年龄(x)和总人数(N)时,逆序输出所有人的年龄组成的列表。注:当其中第M个人的年龄大于120岁时,输出"Larger than 120!"和前M-1个人的年龄的逆序列表。
【输入形式】

在一行内分别输入x和N,用逗号隔开
【输出形式】

逆序输出N个人的年龄组成的列表。当其中第M个人的年龄大于120岁时,输出"Larger than 120!"和前M-1个人的年龄的逆序列表。

【样例输入1】

6,4

【样例输出1】

[15, 9, 6, 3]

【样例输入2】

80,9

【样例输出2】

Age 4 is larger than 120!

[83, 80, 3]

def getAge(n,x):
    if n==1:
        return 3
    if n==2:
        return x
    return getAge(n-1,x)+getAge(n-2,x)

flag=0
f1=3
x,n=map(int,input().split(','))
l=[x,f1]
for i in range(3,n+1):
    a=getAge(i,x)
    if a>120:
        flag=i
        break
    else:
        l.insert(0,a)
if flag!=0:
    print('Age',flag,'is larger than 120!')
print(l)

有帮助请采纳