c++汉诺塔函数的盘子数量运行时总是少一个

汉诺塔问题,请问为什么我输入三个盘子但是程序运行出来只显示了盘子一和盘子二呢?


#include 
using namespace std;
int fun(int n,char A,char B,char C)
{
    if(n==1)
    {
    cout<<"move"<"from"<"to"<//如果只有一个盘子,A到C 
    }
    else
    {
        fun(n-1,A,C,B);//如果有两个盘子,则最上面的先从A到B,再让第二个从A到C,最后让第一个盘子到B到C 
        cout<<"move"<1<<"from"<"to"<fun(n-1,B,A,C);
    }

}
int main()
{
    int n;
    cout<<"请输入盘子数量:";
    cin>>n; 
    fun(n,'A','B','C');
    return 0;
} 

你这个是一个递归程序,递归程序要有出口哦,把函数 fun 的返回类型改成 void,然后在 if 语句中 cout 后加 return; 语句。

望采纳。