关于汉诺塔递归输出cout的问题

#include<iostream>
using namespace std;
void hanoi(int n,char a,char b,char c)
{
    if(n==1)
        cout<<n<<" "<<a<<"->"<<c<<endl;
    else{
        hanoi(n-1,a,c,b);
        cout<<n<<" "<<a<<"->"<<c<<endl;//指这条代码
        hanoi(n-1,b,a,c);
        }
}
int main()
{
    int n;
    while(cin>>n)
    hanoi(n,'A','B','C');
    return 0;
}

请问为什么那条cout输出语句(代码中注释部分)为什么在中间 而不是在hanoi(n-1,b,a,c);后面或者有两个语句后面都cout。
谢谢~

因为把n—1个圆盘从a移到b后,就可以把第n个圆盘从a移到c了。