/* *Tower of Hanoi* */
#include <iostream>
using namespace std;
void move(char s, char d) {
cout<<s<<"-->"<<d<<endl;
}
/* s is source tower, d is target tower
m is middle tower, n id the number of diskes */
void hanoi(int n, char s, char m, char d) {
if (n == 1)
move(s, d);
else {
hanoi(n-1, s, d, m );
move(s, d);
hanoi(n-1, m, s, d);
}
}
int main() {
int m;
cout<<"Enter the number of diskes: ";
cin>>m;
cout<<"the steps to moving "<<m<<"diskes:"<<endl;
hanoi(m, 'A', 'B', 'C');
return 0;
}Tower of Hanoi (递归的神奇之力--化繁为简)
最新推荐文章于 2024-01-17 22:53:13 发布
本文介绍了一个经典的递归算法示例——汉诺塔问题,并提供了完整的C++代码实现。通过用户输入盘子的数量,程序将输出移动这些盘子所需的步骤。
930

被折叠的 条评论
为什么被折叠?



