汉诺塔问题,请问为什么我输入三个盘子但是程序运行出来只显示了盘子一和盘子二呢?
#include <iostream>
using namespace std;
int fun(int n,char A,char B,char C)
{
if(n==1)
{
cout<<"move"<<n<<"from"<<A<<"to"<<C<<endl;//如果只有一个盘子,A到C
}
else
{
fun(n-1,A,C,B);//如果有两个盘子,则最上面的先从A到B,再让第二个从A到C,最后让第一个盘子到B到C
cout<<"move"<<n-1<<"from"<<A<<"to"<<C<<endl;
fun(n-1,B,A,C);
}
}
int main()
{
int n;
cout<<"请输入盘子数量:";
cin>>n;
fun(n,'A','B','C');
return 0;
}