文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python递归实现猴子吃桃问题及解析

2024-04-02 19:55

关注

Python递归实现猴子吃桃

猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了,求第一天共摘了多少桃子?

对于此性质的问题适合用递归的思想去解决,即当前问题可以转化为性质相同的子问题去解决:

要想知道第一天的桃子数量,需要知道第二天的桃子数量,然后将第二天的桃子数量加1乘以2就可以得到第一天的桃子数量。按照此法进行倒推,我已知道第十天的桃子数量为1个,则第九天的桃子数量为第10天的桃子数量加1乘以2,第八天的桃子数量等于第九天的数量加1再乘以2,...

则可以定义函数去实现:n代表天数,如果输入的n不合理,则直接退出函数,如果n等于10,则返回1,否则返回其后面天数桃子数量加1再乘以2

代码如下:

def monkey_tao(n):
    if n>10 or n<1:
        return
    elif n==10:
        return 1
    else:
        return (monkey_tao(n+1)+1)*2
print (monkey_tao(1))

Python函数(闰年&猴子偷桃)问题

函数

1. 函数简介

def 函数名([形参1,形参2,形参3....]):
    代码块

注意:

print是函数对象 print()是调用函数

函数的参数

形参和实参

函数的传递方式

不定长参数

参数的解包

1.函数的返回值

2.文档字符串

函数的作用域

全局作用域在程序执行时创建,在程序执行结束时销毁

所有函数以外的区域都是全局作用域

在全局作用域中定义的变量,都是全局变量,全局变量可以在程序的任意位置进行访问

函数作用域

命名空间

递归函数

基线条件 问题可以被分解为最小问题,当满足基线条件时,递归就不执行了

递归条件 可以将问题继续分解的条件

作业

闰年

用函数实现一个判断用户输入的年份是否是闰年的程序

以上2种方法满足一种即为闰年

def leap_year():
    i = int(input('请输入一个年份:'))
    if i%400 == 0 or (i%4 == 0 and i%100 != 0):
        print('此年分是闰年')
    else:
        print('次年分不是闰年')
leap_year()

运行结果:

猴子吃桃问题(递归)

猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了,求第一天共摘了多少桃子?

def hou_tao(i, x):       # i为天数  x为剩余桃子数
    if i == 1:
        return x
    else:
        return (hou_tao(i-1, x) + 1)*2
print(f'第一天共摘{hou_tao(10, 1)}个桃子')

运行结果:

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯