2008年11月27日hanoi:2008.02.01 C++ [Hanoi...
Hanoi(汉诺)塔问题Hanoi(汉诺)塔问题。这是一个古典的数学问题,是一个用递归方法解题的典型例子。问题是这样的:古代有一个梵塔,塔内有3个座A、B、C,开始时A座上有64个盘子,盘子大小不等,大的在下,小的在上。有一个老和尚想把这64个盘子从A座移到C座,但每次只允许移动一个盘,且在移动过程中在3个座上都始终保持大盘在下,小盘在上。在移动过程中可以引用B座,要求编程序输出移动的步骤。
读者是不大可能直接写出移动盘子的每一个具体步骤的,请读者实验一下按上面的规律将5个盘子从A座移到C座,能否直接写出每一步骤?
老和尚自然会这样想:加入有另外一个和尚能有办法将63个盘子从一个座移到另一座。...
[阅读全文] [PDF]
2008年9月25日hanoi塔:hanoi塔问题的C++代码
hanoi塔问题,这是一个古典的数学问题,是一个只有用递归方法解决的问题。问题是这样的:古代有一个梵塔,塔内有3个座A,B,C,开始时A座上有64个盘子,盘子大小不等,大的在下,小的在上。有一个老和尚想把这64个盘子从A座移到C座,但每次只允许移动一个盘,且在移动过程中在3个座上都始终保持大盘在上,小盘在下。在移动过程中可以利用B座。
将n个盘子从A座移到C座可以分解为以下3个步骤:(1).将A上n-1个盘借助C座先移到B座上;(2).把A座上剩下的一个盘移到C座上;(3).将B上n-1个盘借助A座先移到C座上。
程序如下:
#i nclude<...
[阅读全文] [PDF]
1 共2条 分1页