汉诺塔 python版
2015-11-28 21:01
603 查看
汉诺塔问题:如果将n个盘子(由小到大)从a通过b,搬到c,搬运过程中不能出现小盘子在大盘子下面的情况。
思路分析:假设前要移动第100个盘子,分两步走,移动第99个;再移动第100个;而要移动第99个,同样分两部,移动第98个,再移动第99个,以此类推;
if(n>1)
{
1、先将A柱上的前n-1个盘子从A借助C移动到B;
2、把A柱子上的第n个盘子直接移动到C;
3、再将B柱子上的n-1个盘子借助A移动到C;
}
思路分析:假设前要移动第100个盘子,分两步走,移动第99个;再移动第100个;而要移动第99个,同样分两部,移动第98个,再移动第99个,以此类推;
if(n>1)
{
1、先将A柱上的前n-1个盘子从A借助C移动到B;
2、把A柱子上的第n个盘子直接移动到C;
3、再将B柱子上的n-1个盘子借助A移动到C;
}
#!/usr/bin/python #encoding=utf-8 def hanoi(n, x, y, z): //x表示第x根柱子,y表示第y根柱子,z表示第z根柱子 if n==1: print x,'-->',z else: #将前n-1个盘子移动到y: hanoi(n-1, x, z, y) print x, '-->', z #x柱子移动到z上 #将y上的n-1个盘子移动到z上 hanoi(n-1, y, x, z) import sys hanoi(int(sys.argv[1]), 'x', 'y', 'z')
相关文章推荐
- 基于Python的机器学习实战:Apriori
- Python解析json
- Python爬虫实战(三):爬网易新闻
- 【Python】计算文件MD5 和 SHA1
- Python数据类型之列表
- 趣学Python-教孩子学编程--第五章
- 趣学Python-教孩子学编程--第四章
- 趣学Python-教孩子学编程--第三章
- Python基础_SAX解析文件
- 《Python基础教程》第二版代码清单2-3更正
- python学习中的点点滴滴
- python parse命令行参数
- Python之Python 安装环境搭建
- Python生成随机数的方法
- python 第三方库import失败解决方法
- Document Filtering(naive bayes method) used by python
- python多线程编程例子实验
- Python中模拟C#对应Linq的一些操作
- Python3.5+Django1.8链接Mysql数据库的方法
- python高可用程序设计方法