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是个不确定的数。