初学python算法100例-案例27 等差数列递归求法

Posted 技术专家团-小兔子编程

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初学python算法100例-案例27 等差数列递归求法相关的知识,希望对你有一定的参考价值。

题目:等差数列递归求法

有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算法100例-案例27 等差数列递归求法的主要内容,如果未能解决你的问题,请参考以下文章

初学python算法100例-案例28 逆序输出每位数字

初学python算法100例-案例28 逆序输出每位数字

初学python算法100例-案例30 计算闰年

初学python算法100例-案例23 输出菱形

初学python算法100例-案例9 间隔1秒输出结果

初学python算法100例-案例29 判断回文数