python基础练习题(题目 递归求等差数列)

day20

---------------------------------------------------------------

实例028:递归求等差数列

题目 有5个人坐在一起,问第5个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第3个人,又说比第2人大两岁。问第2个人,说比第1个人大两岁。最后问第1个人,他说是10岁。请问第5个人多大?

分析:递归有递归体和结束条件及结束的处理办法,递归体就是+2,结束就是第几个人,然后一级一级返回当前年龄即可。

1 def get_age(n):
2     if n == 1:
3         age = 10
4         return age
5     return int(get_age(n-1)) + 2
6 
7 print(get_age(5))

看看答案:

1 def age(n):
2     if n==1:
3         return 10
4     return 2+age(n-1)
5 print(age(5))

逻辑基本一致,但自己还是老思维,总感觉习惯用变量,倒把问题复杂化了,当然我这个适合age是个不确定的数。

原文地址:https://www.cnblogs.com/qgc1995/p/15111542.html