2 c cpp java hehe c_cpp_java_hehe 于 2014.11.14 12:15 提问

关于汉诺塔递归输出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。
谢谢~

1个回答

dy213151
dy213151   2015.12.01 08:31

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

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!