【问题描述】
假设现在有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)
有帮助请采纳