第023、024讲:递归:这帮小兔崽子、汉诺塔
动动手
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讲:递归:这帮小兔崽子、汉诺塔相关推荐
- 第023、024讲:这帮小兔崽子汉诺塔 | 学习记录(小甲鱼零基础入门学习Python)
(标答出处: 鱼C论坛) <零基础入门学习Python> 测试题: 0.使用递归编写一个十进制转换为二进制的函数(要求采用'取2取余'的方式,结果与调用bin()函数一样返回字符串形式) ...
- [小甲鱼] 零基础入门python第023、024讲课后测试题及答案:这帮小兔崽子汉诺塔
动动手: 0.使用递归编写一个十进制转换为二进制的函数(要求采用'取2取余'的方式,结果与调用bin()函数一样返回字符串形式) def ten2bin(n):result=''if n:result ...
- 小甲鱼Python第二十三讲、第二十四讲(递归-这帮小兔崽子、汉诺塔)
def fab(n):迭代的方法if n<1:return -1while(n-2)>0:n3=n2+n1n1=n2n2=n3n=n-1return n3 def rabbit(n):递归 ...
- 小甲鱼《零基础学习Python》课后笔记(二十三、二十四):递归——这帮小兔崽子和汉诺塔
由于递归实在不太理解,而且觉得题目大多是为了用递归而使用递归,觉得题目暂时没有做的必要,所以先跳过,以后用到再补充学习- 2018年8月11日
- P24 023递归:这帮小兔崽子
小甲鱼Python P24 023递归:这帮小兔崽子 P24 023递归:这帮小兔崽子 # def fab(n): # n1 = 1 # n2 = 1 # n3 = 1 # # if n < 1 ...
- 小甲鱼零基础学python笔记 P24 递归:这帮小兔崽子
P24 递归:这帮小兔崽子 斐波那契数列:后一个数等于前两数之和 f(n-2)+ f(n-1)=f(n) 例题: 方法一:函数执行 利用函数来执行: 函数执行逻辑: 初始值都为1,利用循环来进行判断若 ...
- 【Java数据结构与算法】第十七章 二分查找(非递归)和分治算法(汉诺塔)
第十七章 二分查找(非递归)和分治算法(汉诺塔) 文章目录 第十七章 二分查找(非递归)和分治算法(汉诺塔) 一.二分查找 1.思路 2.代码实现 二.分治算法(汉诺塔) 1.概述 2.汉诺塔 一.二 ...
- 《零基础入门学习Python》第023、024讲:递归:这帮小兔崽子、汉诺塔
目录 动动手 0. 使用递归编写一个十进制转换为二进制的函数(要求采用"取2取余"的方式,结果与调用bin()一样返回字符串形式). 1. 写一个函数get_digits(n),将 ...
- FishC笔记—23,24 讲 递归:这帮小兔崽子,汉诺塔
本期内容详解: 斐波那契数列的两种实现方式: 迭代的方式: def fab(n): n1 = 1 n2 = 1 n3 = 1 if n < 1: n = int(input('输入有误,请重新输 ...
最新文章
- Vue踩坑之旅(一)—— 数组、对象的监听
- 启明云端分享|注意了,ESP-12F和ESP-12S虽然只有一个字母不同,但在选型时,要注意了,ESP-12F底部是有焊盘的!
- PyQt5案例汇总(简洁版)
- hdu1829 A Bug's Life
- LordPE--计算RVA到Offset的值
- CTF之做题总结(五)
- wifi 频段表_wifi频段如何设置为5ghz
- 信息报送不及时整改措施_意见建议及整改措施
- vue创建一个简易版高德地铁路线图
- 网易邮箱大师如何注册邮箱 注册邮箱方法步骤介绍
- 我的心只悲伤七次-纪伯伦
- Wifite.py 修正版脚本代码
- 编译安装oh-my-zsh
- 人力资源战略规划新思考
- 汽车租赁小程序来了,汽车租赁小程序开发方案
- 软件project师周兆熊给IT学子的倾情奉献
- 崮德好文连载 - 活该你是工程师(关于危机感)
- 岁月的剪影【七月My way】
- Vue全家桶系列之Vuex(三)
- 微信小程序获取当前位置和城市名