python案例——函数递归案例

这篇具有很好参考价值的文章主要介绍了python案例——函数递归案例。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、猴子吃桃

问题描述:

一个猴子第一天吃掉桃子的一半又多一个,第二天照此方法又吃掉剩下一半加一个,以后每天如此,直到第十天早上,只剩下了一个桃子,问第一天原本多少个桃子

代码实现:

def myfunc(n):
    if n==1:
        return 1
    else:
        return 2*(myfunc(n-1)+1)

a = myfunc(10)
print(a)

1534

 2、杨辉三角形

问题描述:

打印杨辉三角形

python案例——函数递归案例

 算法设计:

杨辉三角形中的数正好是(x+y)的N次幂的展开式各项系数。

  • 第x行有x个值
  • 对于第x行的第y(y>=3)个值,有当y=1或y=x时,其值为1,剩下的值为第x-1行的第y-1个值和第y个值的和

python案例——函数递归案例

代码实现:

def myfunc(x,y):
    if y==1 or y==x:
        return 1
    else:
        z = myfunc(x-1,y-1)+myfunc(x-1,y)
        return z

n = int(input("请输入杨辉三角形的行数:"))
for i in range(1,n+1):
    for j in range(1,i+1):
        print(myfunc(i,j),end=" ")
    print()
    

请输入杨辉三角形的行数:10
1 
1 1 
1 2 1 
1 3 3 1 
1 4 6 4 1 
1 5 10 10 5 1 
1 6 15 20 15 6 1 
1 7 21 35 35 21 7 1 
1 8 28 56 70 56 28 8 1 
1 9 36 84 126 126 84 36 9 1 

3、年龄问题

问题描述:

有5个人坐在一起,问第 5 个人多少岁,他说比第 4 个人大 2 岁,问第 4 个人,他说比第 3 个人大两岁,依次类推,第一个人是10岁,问第五个人多少岁

代码实现:

def myfunc(n):
    if n==1:
        return 10
    else:
        z = myfunc(n-1)+2
        return z

n = int(input("共有人数:"))
print(myfunc(n))

共有人数:5
18

4、分🐟问题

问题描述:

A,B,C,D,E 5个人合伙捕鱼,A将🐟平分5份,把多余的一条扔回河中,B将剩下的🐟平分5份,再将多余的一条仍会河中,然后依次同样的方法,问每个人醒来看到的是多少条鱼。

算法设计:

由于每个人都是将🐟5等份再扔掉一条,因此每一次分的🐟都是 (x-1)/5,那么剩下的就是        4(x-1)/5,而对于这两个数都是整数

fish[1] = 全部的🐟

fish[2] = 4 * (fish[1]-1) // 5

fish[3] = 4 * (fish[2]-1) // 5

...

即fish[n] = 4*(fish[n-1]-1) // 5

代码实现:

def fish(n,z):
    if (z-1)%5==0:
        if n==1:
            return 1
        else:
            return fish(n-1,(z-1)/5*4)
    return 0
i = 0
while True:
    i+=1
    x=i*5+1
    if (fish(5,x)):
        print(x)
        break

3121

5、逆序输出数字

问题描述:

编程实现输入的数字逆序输出

代码设计:

def reverse(n):
    if n!=0:
        print(n%10,end='')
        reverse(n//10)
num = int(input("请输入一个整数: "))
reverse(num)

请输入一个整数: 123456789
987654321

6、逆序输出字符串

代码设计: 文章来源地址https://www.toymoban.com/news/detail-448960.html

def rvstr(s):
    if len(s)<=1:
        return s
    else:
        return rvstr(s[1:]) +s[0]    #切片

str = str(input("请输入字符串: "))
print(rvstr(str))


请输入字符串: abcdefg
gfedcba

7、汉诺塔

问题描述: 

python案例——函数递归案例

代码设计: 

def hanoi(n, x, y, z):
    if n == 1:
        print(x, '-->', z)  # 如果只有 1 层,直接将金片从 x 移动到 z
    else:
        hanoi(n-1, x, z, y) # 将 x 上的 n-1 个金片移动到 y
        print(x, '-->', z)  # 将最底下的金片从 x 移动到 z
        hanoi(n-1, y, x, z) # 将 y 上的 n-1 个金片移动到 z
    
n = int(input('请输入汉诺塔的层数:'))
hanoi(n, 'A', 'B', 'C')

到了这里,关于python案例——函数递归案例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python 函数:定义、调用、参数、递归和 Lambda 函数详解

    函数是一段代码块,只有在调用时才会运行。您可以将数据(称为参数)传递给函数。 函数可以返回数据作为结果。 在Python中,使用def定义函数: 示例 要调用函数,请使用函数名称后跟括号: 示例 可以将信息作为参数传递给函数。参数在函数名称后面的括号内指定

    2024年02月08日
    浏览(78)
  • 一张图学会python递归函数

    递归函数属于那种“难者不会,会者不难”的事情,回想自己大学时学习递归函数的经历,简直是痛不欲生,代码里没有一行是看不懂的,但就是理解不了它是怎样运行的。 等到自己悟通了原理,就又会觉得这东西太简单了,不明白自己当初为何想不清楚。 对于递归函数,

    2023年04月09日
    浏览(38)
  • Python基础算法训练——函数与递归(46~50)

    Python基础算法训练——函数与递归(46~50) 46. 数字统计 【题目描述】 请统计某个给定范围 [L,R] 的所有整数中,数字 7 出现的次数。 比如给定范围 [60,80] 中,7一共出现12次。分别是67,77的个位,以及 70∼79 的十位。 【输入】 一行两个数 L,R 表示范围,用空格分隔。 【输出】 一

    2024年02月15日
    浏览(58)
  • Python 中如何实现斐波那契数列递归函数?

    斐波那契数列是这样一个数列:1, 1, 2, 3, 5, 8, 13, 21, 34, ...... 该数列从第三项开始,每一项都等于前两项之和。  这里我们使用递归的方法来实现斐波那契数列:   这个递归函数的基本思路是:  1. 斐波那契数列的前两项是 1。所以如果 n = 1,直接返回 n。 2. 否则,计算前两项 fib(n-1

    2024年02月01日
    浏览(39)
  • 【30天python从零到一】---第六天:函数、变量作用域、函数的链式调用和递归调用

    🍎 博客主页:🌙@披星戴月的贾维斯 🍎 欢迎关注:👍点赞🍃收藏🔥留言 🍇系列专栏:🌙 Python专栏 🌙请不要相信胜利就像山坡上的蒲公英一样唾手可得,但是请相信,世界上总有一些美好值得我们全力以赴,哪怕粉身碎骨!🌙 🍉一起加油,去追寻、去成为更好的自己

    2023年04月14日
    浏览(46)
  • 第48讲:Python中函数的概念以及应用案例

    1.1什么是函数 函数是具有某种特定功能的代码块,可以重复的调用这个函数进行使用。 函数可以接收输入参数,然后执行特定的代码以完成特定的功能,最后输出返回值,其中输入和输出的返回值都是可以选择是否要定义。 如果一段代码在程序中会被频繁调用,我们就可以

    2024年02月08日
    浏览(65)
  • 【递归】:原理、应用与案例解析 ,助你深入理解递归核心思想

    递归在计算机科学中,递归是一种解决计算问题的方法,其中解决方案取决于同一类问题的更小子集 例如 递归遍历环形链表 基本情况(Base Case) :基本情况是递归函数中最简单的情况,它们通常是递归终止的条件。在基本情况下,递归函数会返回一个明确的值,而不再进行

    2024年02月21日
    浏览(48)
  • 将递归函数转成非递归函数的通用方法

    看到过一道非常不错的面试题:不支持递归的程序语言如何实现递归程序? 之所以说这道题好,是因为: 首先,它不是纯粹考概念和死记硬背,求职者在回答问题之前需要进行一定的思考; 其次,这道题目可以继续深挖,比如可以让求职者具体写一个程序,就变成了一道编

    2024年02月08日
    浏览(38)
  • 第55讲:Python函数形参、实参的语法格式汇总以及应用小案例

    1.1.常规参数 常规参数也是必须指定的参数,如果不指定位置形参或者形参,那么函数的功能就太单一了,只能做一件事。 1)位置形参 在定义函数时设置几个形参,然后调用时传入位置实参。

    2024年02月07日
    浏览(40)
  • 深入理解递归函数与可控递归的应用

    什么是递归函数 递归函数的本质与循环的关系 递归函数的特点与优势 可控递归的要素 使用C语言详细举例说明可控递归 注意事项:递归层数限制与堆栈溢出问题 递归函数是指函数自己调用自己的过程。在C语言中,通过递归调用,函数能够重复执行某个任务,直到满足特定

    2024年02月12日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包