问题描述
- 关于汉诺塔递归输出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了。
时间: 2024-10-31 09:10:56