谁能告诉我如下简单得C++程序的执行结果?

来源:百度知道 编辑:UC知道 时间:2024/06/04 05:51:31
#include <iostream.h>
void hanio(int,char,char,char);
void main()
{char A='A',B='B',C='C';
int n=3;
hanio(n,A,B,C);
}
void hanio(int n,char A,char B,char C)
{if (n==1)
cout << "将第"<< n <<"个盘片从"<<A<<"柱搬到"<< C <<"柱上"<<endl;
else {hanio(n-1,A,C,B);
cout <<"将第"<<n<<"个盘片从"<<A<<"柱搬到"<<C<<"柱上"<<endl;
hanio (n-1,B,A,C);
}
}
可是我却不知道怎么来的?
麻烦哪位大虾能指点一二

本来还以为书上错了呢?

将第1个盘片从A柱搬到C柱上
将第2个盘片从A柱搬到B柱上
将第1个盘片从C柱搬到B柱上
将第3个盘片从A柱搬到C柱上
将第1个盘片从B柱搬到A柱上
将第2个盘片从B柱搬到C柱上
将第1个盘片从A柱搬到C柱上
Press any key to continue
这是函数的递归调用!
函数在 不停的调用自己 直到抵达出口

不就是结果么?

将第1个盘片从A柱搬到C柱上
将第2个盘片从A柱搬到B柱上
将第1个盘片从C柱搬到B柱上
将第3个盘片从A柱搬到C柱上
将第1个盘片从B柱搬到A柱上
将第2个盘片从B柱搬到C柱上
将第1个盘片从A柱搬到C柱上

汉诺塔问题么 ...

本地没有 C 环境 ... 路过 ...