2015-09-26 49 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