python实现汉诺塔问题
2016-06-07 19:51
267 查看
python实现汉诺塔问题
汉诺塔(又称河内塔)问题是印度的一个古老的传说.传说中,开天辟地的神勃拉玛在一个庙里留下了三根金刚石的棒,第一根上面套着64个圆形的金片,最大的 一个在底下,其余一个比一个小,依次叠上去,寺院的僧侣依照一个古老的预言,不知疲倦地把它们一个个地从这根棒搬到另一根棒上,规定可利用中间的一根棒作 为帮助,但每次只能搬一个,而且大的不能放在小的上面,预言说,当这些金片移动完毕后,世界就会灭亡。代码块
#!/usr/bin/env python n = int(input('please input a number:')) count=1 def f(n, a, b, c): global count if n == 1: print('%d:\t%s --> %s' % (count,a,c)) count += 1 else: f(n-1, a, c, b) f(1, a, b, c) f(n-1, b, a, c) f(n, 'A', 'B', 'C')
运行结果:
[root@yuan python]# ./hannuota.py
please input a number:3
1: A –> C
2: A –> B
3: C –> B
4: A –> C
5: B –> A
6: B –> C
7: A –> C
相关文章推荐
- 【Python】operator 模块简单介绍
- python学习之argparse模块
- Python中的str与unicode处理方法
- python版opencv入门(1)
- python多线程生成缩略图
- Flask框架中密码的加盐哈希加密和验证功能的用法详解
- 一个由于python程序fork子进程时复制对象导致的程序锁死的问题
- Python的Flask框架应用程序实现使用QQ账号登录的方法
- Python初体验之pip安装的依赖
- python+selenium简介及安装方法
- Python 读取GIST Data Set(一)
- Python 标准库 —— os 路径(os.path)
- Python 字符串详解
- python学习5
- Python入门:os部分方法介绍(一)
- leetcode 78. Subsets-数组子集|回溯算法
- python 练习
- 225. Implement Stack using Queues [easy] (Python)
- Windows上使用virtualenv搭建Python+Flask开发环境
- git 上的 python package 的安装