Tower of Hanoi by C++

来源:互联网 发布:网络写手怎样才有收入 编辑:程序博客网 时间:2024/05/17 05:02
好久没写C++程序了,突然想玩一下Tower of Hanoi。
上网找了一下相关的资料,汉诺塔的递归思想如下:
定义塔层数为n,三根支柱分别为A,B,C
把n从A移动到C上
当n=1时,直接A-->C
当n>1时,分三步:
    n-1从A-->B
    n   从A-->C
    n-1从B-->C
有点像分治。以下是代码




#include <iostream>


using namespace std;


void Hanoi(int n, char s, char d, char r)
{
if (n == 1)
{
cout << s<< "-->" << d << endl;
}
else
{
Hanoi(n - 1, s, r, d);
cout << s << "-->" << d<< endl;
Hanoi(n - 1, r, d, s);
}
}


int main()
{
int n = 3;
char A = 'A';
char B = 'B';
char C = 'C';


Hanoi(n, A, C, B);
return 1;


}
0 0
原创粉丝点击