动动手

0. 使用递归编写一个十进制转换为二进制的函数(要求采用“取2取余”的方式,结果与调用bin()一样返回字符串形式)。

def Bin(x):if x==0:return '0'elif x==1:return '1'else:return Bin(x//2)+str(x%2)

1. 写一个函数get_digits(n),将参数n分解出每个位的数字并按顺序存放到列表中。

def fun(x):if x//10==0:return [x]else:return fun(x//10)+[x%10]

2. 还记得求回文字符串那道题吗?现在让你使用递归的方式来求解,亲还能骄傲的说我可以吗?

def fun(str1):if len(str1)==1:return 1elif len(str1)==2:if str1[1]==str1[0]:return 1else:return 0else:if str1[0]==str1[len(str1)-1] and fun(str1[1:len(str1)-1])==1:return 1else:return 0

3. 使用递归编程求解以下问题:

有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?

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

4. 请写下这一节课你学习到的内容:格式不限,回忆并复述是加强记忆的好方式!

递归实现汉诺塔

对于游戏的玩法,我们可以简单分解为三个步骤:

将前63个盘子从a移到b上

将最底下的第64个盘子从a移到c

将b上的63个盘子移到c

问题1:将a上的63个盘子借助c移到b

问题2:将b上的63个盘子借助a移到c

然后:

问题1拆解为:

  • 将前62个盘子从a移到c上
  • 将最底下的第63个盘子从a移到b
  • 将c上的62个盘子移到b

问题2拆解为:

  • 将前62个盘子从b移到a上
  • 将最底下的第63个盘子从b移到c
  • 将a上的62个盘子移到b

代码实现

第023、024讲:递归:这帮小兔崽子、汉诺塔相关推荐

  1. 第023、024讲:这帮小兔崽子汉诺塔 | 学习记录(小甲鱼零基础入门学习Python)

    (标答出处: 鱼C论坛) <零基础入门学习Python> 测试题: 0.使用递归编写一个十进制转换为二进制的函数(要求采用'取2取余'的方式,结果与调用bin()函数一样返回字符串形式) ...

  2. [小甲鱼] 零基础入门python第023、024讲课后测试题及答案:这帮小兔崽子汉诺塔

    动动手: 0.使用递归编写一个十进制转换为二进制的函数(要求采用'取2取余'的方式,结果与调用bin()函数一样返回字符串形式) def ten2bin(n):result=''if n:result ...

  3. 小甲鱼Python第二十三讲、第二十四讲(递归-这帮小兔崽子、汉诺塔)

    def fab(n):迭代的方法if n<1:return -1while(n-2)>0:n3=n2+n1n1=n2n2=n3n=n-1return n3 def rabbit(n):递归 ...

  4. 小甲鱼《零基础学习Python》课后笔记(二十三、二十四):递归——这帮小兔崽子和汉诺塔

    由于递归实在不太理解,而且觉得题目大多是为了用递归而使用递归,觉得题目暂时没有做的必要,所以先跳过,以后用到再补充学习- 2018年8月11日

  5. P24 023递归:这帮小兔崽子

    小甲鱼Python P24 023递归:这帮小兔崽子 P24 023递归:这帮小兔崽子 # def fab(n): # n1 = 1 # n2 = 1 # n3 = 1 # # if n < 1 ...

  6. 小甲鱼零基础学python笔记 P24 递归:这帮小兔崽子

    P24 递归:这帮小兔崽子 斐波那契数列:后一个数等于前两数之和 f(n-2)+ f(n-1)=f(n) 例题: 方法一:函数执行 利用函数来执行: 函数执行逻辑: 初始值都为1,利用循环来进行判断若 ...

  7. 【Java数据结构与算法】第十七章 二分查找(非递归)和分治算法(汉诺塔)

    第十七章 二分查找(非递归)和分治算法(汉诺塔) 文章目录 第十七章 二分查找(非递归)和分治算法(汉诺塔) 一.二分查找 1.思路 2.代码实现 二.分治算法(汉诺塔) 1.概述 2.汉诺塔 一.二 ...

  8. 《零基础入门学习Python》第023、024讲:递归:这帮小兔崽子、汉诺塔

    目录 动动手 0. 使用递归编写一个十进制转换为二进制的函数(要求采用"取2取余"的方式,结果与调用bin()一样返回字符串形式). 1. 写一个函数get_digits(n),将 ...

  9. FishC笔记—23,24 讲 递归:这帮小兔崽子,汉诺塔

    本期内容详解: 斐波那契数列的两种实现方式: 迭代的方式: def fab(n): n1 = 1 n2 = 1 n3 = 1 if n < 1: n = int(input('输入有误,请重新输 ...

最新文章

  1. Vue踩坑之旅(一)—— 数组、对象的监听
  2. 启明云端分享|注意了,ESP-12F和ESP-12S虽然只有一个字母不同,但在选型时,要注意了,ESP-12F底部是有焊盘的!
  3. PyQt5案例汇总(简洁版)
  4. hdu1829 A Bug's Life
  5. LordPE--计算RVA到Offset的值
  6. CTF之做题总结(五)
  7. wifi 频段表_wifi频段如何设置为5ghz
  8. 信息报送不及时整改措施_意见建议及整改措施
  9. vue创建一个简易版高德地铁路线图
  10. 网易邮箱大师如何注册邮箱 注册邮箱方法步骤介绍
  11. 我的心只悲伤七次-纪伯伦
  12. Wifite.py 修正版脚本代码
  13. 编译安装oh-my-zsh
  14. 人力资源战略规划新思考
  15. 汽车租赁小程序来了,汽车租赁小程序开发方案
  16. 软件project师周兆熊给IT学子的倾情奉献
  17. 崮德好文连载 - 活该你是工程师(关于危机感)
  18. 岁月的剪影【七月My way】
  19. Vue全家桶系列之Vuex(三)
  20. 微信小程序获取当前位置和城市名

热门文章

  1. 如何将网站添加到桌面快捷方式
  2. 企业建站:勿让蜘蛛陷入的六个“坑”
  3. 信息学奥赛一本通高手训练1679:子集
  4. GEE 提取长系列NDVI像元值
  5. 关于下一代防火墙的几个思考
  6. 利好消息!康复肺炎患者抗体血浆有助于拯救危重病人!捐献号召一呼百应
  7. 软件测试团队分为哪些人员,敏捷测试团队的人员分布
  8. Autodesk AutoCAD 2023 计算机辅助设计软件中文正式版安装说明
  9. ds hdmi 原理
  10. 微信服务商如何申请?