嗨大家好我在河內塔上遇到了一個問題:
我們給了一堆交替堆疊的交替顏色的圓柱體。
這個工作是分開兩個相同顏色的堆棧
我可以使用遞歸爲河內的普通塔編寫代碼(算法),但我無法弄清楚這一部分。有人可以幫忙嗎?定期河內問題
代碼:
河內之塔問題
#include<iostream>
using namespace std;
int count=0;
void hanoi(char a,char b,char c,int x)
{
if(x>1)
{
hanoi(a,c,b,x-1);
hanoi(a,b,c,1);
hanoi(c,b,a,x-1);
}
else
{
cout<<"Move a Disk from "<<a<<" to "<<b<<endl; count++;
}
}
int main()
{
int n;
cout<<"Enter the height of stack";
cin>>n;
hanoi('A','B','C',n);
cout<<"\nNo. of changes done:"<<count;
return 0;
}
你真的應該格式化你的代碼在一個更有條理的方式。儘管我確切知道這個解決方案是如何工作的,但是您粘貼的內容和其難以閱讀的部分沒有縮進。 – BSchlinker 2011-04-26 20:27:21
@Johnan,謝謝你的清理。 – BSchlinker 2011-04-26 20:28:07
@Frustated Coder:**縮進代碼**/8-/<< - 嚴峻的臉。 – Johan 2011-04-26 20:29:31