
代码如下:
#include <iostream>using namespace std;long icount;void move(int n,char x,char y, char z){if(n==1)cout << "Times: " << ++icount << ":" << x << "->" << z << endl;else{move(n-1,x,z,y);cout << "Times:" << ++icount << ":" << x << "->" << z << endl;move(n-1,y,x,z);}}void main(){int n;icount=0;cout << "Please input a number: " << endl;cin >>n;move(n,'a','b','c');} 我想说代码没错,算出来的答案不管网上还是书上都说是正确的,但是我怎么看怎么不对,第三步c如何到b的。 三个汉诺塔的移动方法应该是: a->c ,b->b , a->b, c->c ,a->a ,b->c ,a->c才对吧。。坐等大神解答疑惑,感激!!




