2015-09-26 51 views
-1

考慮河內問題的塔原用一個額外的條件:塔直接從DIST移動到溫度

  • 如果你有3極A,B和C你不能直接移動光盤從A到B或B到A

這意味着從着名的遞歸解決方案我們不允許將開始移動到temp或temp開始。

void hanoi(int n, char start, char temp, char finish){ 
    if (n== 1) 
     cout << start << " -> " << finish; 
    else { 
     hanoi(n - 1, start, finish, temp); 
     cout << start << " -> " << finish; 
     hanoi(n - 1, temp, start, finish); 
    } 
} 

任何人都可以幫助我找到解決方案嗎?

+1

是什麼讓你覺得有一個解決方案? –

+0

你的意思是沒有? – Mehdi

+0

我不知道;你似乎認爲那是,所以我想知道那是什麼基礎。 –

回答

0

不是直接從A移動到B,而是執行中間移動A-> C-> B。如果實施是正確的,應該始終可以做到這一點。

+0

我嘗試過,不工作 – Mehdi

+0

請將更多詳細信息添加到「不工作」 – Paul92

+0

第一招總是a - > c,第二個是 - > b,所以我們得到 - > c,a - > c,a - > b – Mehdi