C++差错ing

来源:百度知道 编辑:UC知道 时间:2024/06/27 22:32:56
这个是汉诺塔问题,算法应该是没问题的,但输出怎么就是错的呢 ,还输出那么多1,怎么回事啊?
#include<iostream>
using namespace std;
void hanoi(char x,char y,char z,int n)
{
if(n==1)cout<<n<<":"<<x<<"→"<<y<<endl;
else {
hanoi(x,z,y,n-1);
cout<<n<<":"<<x<<"→"<<y<<endl;
hanoi(z,y,x,n-1);
}
}

int main()
{
hanoi('A','B','C',8);
return 0;

有什么问题吗??? 没问题呀
1:A→C
2:A→B
1:C→B
3:A→C
1:B→A
2:B→C
1:A→C
4:A→B
1:C→B
2:C→A
1:B→A
3:C→B
1:A→C
2:A→B
1:C→B
5:A→C
1:B→A
2:B→C
1:A→C
3:B→A
1:C→B
2:C→A
1:B→A
4:B→C
1:A→C
2:A→B
1:C→B
3:A→C
1:B→A
2:B→C
1:A→C
6:A→B
1:C→B
2:C→A
1:B→A
3:C→B
1:A→C
2:A→B
1:C→B
4:C→A
1:B→A
2:B→C
1:A→C
3:B→A
1:C→B
2:C→A
1:B→A
5:C→B
1:A→C
2:A→B
1:C→B
3:A→C
1:B→A
2:B→C
1:A→C
4:A→B
1:C→B
2:C→A
1:B→A
3:C→B
1:A→C
2:A→B
1:C→B
7:A→C
1:B→A
2:B→C
1:A→C
3:B→A
1:C→B
2:C→A
1:B→A
4:B→C
1:A→C
2:A→B
1:C→B
3:A→C
1:B→A
2:B→C
1:A→C
5:B→A
1:C→B
2:C→A
1:B→A
3:C→B
1:A→C
2:A→B
1:C→B
4:C→A
1:B→A