智一面的面试题提供python的测试题
使用地址:http://www.gtalent.cn/exam/interview?token=906315a76b5c14231889351088713f76

题目:等差数列递归求法
有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?

 

解法1 递归
程序分析

1、利用递归的方法,递归分为回推和递推两个阶段。

2、要想知道第五个人岁数,需知道第四人的岁数,

3、依次类推,推到第一人(10岁),再往回推。

代码编写

def fn(n):
    if n==1:
        return 10
    return 2+fn(n-1)
print("第一个人的年龄为:%d"%(fn(5)))
程序结果

第一个人的年龄为:18
 

解法2 递归2
程序分析

和上面分析差不多

def age(n):
    if n == 1: c = 10
    else: c = age(n - 1) + 2
    return c
print ("第一个人的年龄为:%d"%age(5))
程序结果

第一个人的年龄为:18
————————————————
我们的python技术交流群:941108876
智一面的面试题提供python的测试题
使用地址“http://www.gtalent.cn/exam/interview?token=8a33fabdc405d59c90ffca2496195543