#include<iostream>
using namespace std;
void hanoi(int, int, int, int); // 函數原型
void hanoi(int n, int p1, int p2, int p3)
{
if (n==1)
cout<<"盤子從"<<p1<<"移到"<<p3<<endl;
else{
hanoi(n-1,p1,p3,p2);
cout<<"盤子從"<<p1<<"移到"<<p3<<endl;
hanoi(n-1,p2,p1,p3) ;
}
}
int main()
{
int i,n;
cout<<"請輸入盤子數量: ";
cin >>n;
for(i=0;i<=n;i++)
hanoi(n,1,2,3);//我今天之前一直輸入的是(i,1,2,3),但是又忘了,應該是n,n是輸入的步數。
return 0;
}
代碼很奇怪 我實現出來 會操作三遍???
不知道咋回事。。。看圖
應該是n2-1步,輸入2,我應該得出3步,這裏執行了三次
修改
昨天一直想不通, 爲啥結果會出來三次,今天想到會不會是這句話的原因:
for(i=0;i<=n;i++)
稍作修改,改爲for(i=0;i