python汉诺塔递归函数是什么?
python汉诺塔递归函数是什么?
不管是哪种函数语言,汉诺塔一直都是常见的案例学习,大家可能从字面上不理解,实际上就是一种益智类游戏,比如有三个柱子,其中一个柱子上有大小不等的圆盘,需要让我们圆盘的相互移动上,要保证上面圆盘小于下面,这套游戏规则就构成了汉诺塔,在python里经常被使用,下面来详细了解学习下。
问题要求:
需要输出移动圆盘的数量以及步骤
解析:
1、圆盘1号通过3号移动2号,公式为:hn(n-1,A,C,B)
2、圆盘2号通过1号移动3号,公式为:hn(n-1,B,A,C)
实现公式:
defhn(n,s_from,s_help,s_to):
ifn==1:
print(s_from,'-->',s_to)
else:
hn(n-1,s_from,s_to,s_help)
print(s_from,'-->',s_to)
hn(n-1,s_help,s_from,s_to)
n=int(input("盘子数:"))
hn(n,'A','B','C')
大家可以自行带入数量到里面去计算下,当然除了汉诺塔游戏以外,我们可以还可以调用类似函数计算其他递归问题,希望可以帮助大家学习。更多Python学习教程请关注IT培训机构:千锋教育。
猜你喜欢LIKE
相关推荐HOT
更多>>python函数中使用for循环
python函数中使用for循环1、在for循环中使用函数需要更长的执行时间,因为每次迭代都会调用该函数。2、如果for循环是在函数内部实现的,那么该...详情>>
2023-11-14 13:53:34python3.1版本的特性有哪些
python3.1中的特性有哪些1、千位数格式化,可以在使用字符串格式化函数时直接完成。在格式化大数时,通常是每三位数放置逗号,使数字更易读(例...详情>>
2023-11-14 13:18:27python__new__()和__init__()有什么区别?
在python中,__new__()不是一定要有,只有继承自object的类才有,该方法可以return父类(通过super(当前类名,cls).__new__())出来的实例,或者直...详情>>
2023-11-14 12:38:55pythonwheel是什么
python的第一个主流打包格式是.egg文件,现在大家庭中又有了一个叫做Wheel(*.whl)的新成员。wheel“被设计成包含PEP376兼容安装(一种非常接近于...详情>>
2023-11-14 11:30:39