汉诺伊塔 的Python基本实现
来源:互联网 发布:淘宝类目分析竞争 编辑:程序博客网 时间:2024/06/01 08:51
汉诺塔 (http://baike.baidu.com/view/191666.htm) 的移动也可以看做是递归函数。
我们对柱子编号为a, b, c,将所有圆盘从a移到c可以描述为:
如果a只有一个圆盘,可以直接移动到c;
如果a有N个圆盘,可以看成a有1个圆盘(底盘) + (N-1)个圆盘,首先需要把 (N-1) 个圆盘移动到 b,然后,将 a的最后一个圆盘移动到c,再将b的(N-1)个圆盘移动到c。
请编写一个函数,给定输入 n, a, b, c,打印出移动的步骤
函数 move(n, a, b, c) 的定义是将 n 个圆盘从 a 借助 b 移动到 c
move(n, a, b, c)
例如,输入 move(2, ‘A’, ‘B’, ‘C’),打印出:
A –> B
A –> C
B –> C
#函数 move(n, a, b, c) 的定义:#将 n 个圆盘从 a 借助 b 移动到cdef move(n, a, b, c): if n==1: print a, '-->', c return #将上方n-1个圆盘,由a,借助c,放到b move(n-1,a,c,b) #此时其余n-1个圆盘已经放至b #将a最后一个大圆盘,由a直接放到c print a, '-->', c #将已经放到b的n-1个圆盘,借助a,放到c move(n-1,b,a,c) returnmove(4, 'A', 'B', 'C')
0 0
- 汉诺伊塔 的Python基本实现
- 基本排序的Python实现
- 基本数据结构的python实现---堆栈
- 基本数据结构的python实现---队列
- 基本排序算法的Python实现
- python的KNN算法基本实现
- 基本线性数据结构的Python实现
- 基本排序算法的Python实现
- python爬虫实现基本的邮件发送
- python基本爬虫实现
- 用Python实现的基本版的线段树
- 基于python的sklearn库的决策树算法基本实现
- Python实例讲解——wxPython的基本控件实现
- 总结:python关于一些基本排序算法的实现
- 【Python+OpenCV】目标跟踪-实现基本的运动检测
- Python实现双向链表的基本操作
- 基本A*算法python实现
- 基本A*算法python实现
- 1036. 跟奥巴马一起编程(15)
- 留的一些坑(有空和有能力时填掉)
- C#之lambda(匿名)函数
- linux shell数据重定向(输入重定向与输出重定向)详细分析
- iOS开发的前端之路
- 汉诺伊塔 的Python基本实现
- C++ split() 函数
- vector 使用
- C#5.0特性之 async异步方法
- Python如何判断<type 'NoneType'>数据类型
- 数码管的消影
- UCOS2系统内核讲述(二)_初始化调用函数
- 205. Isomorphic Strings
- 【Leetcode】378. Kth Smallest Element in a Sorted Matrix