我試圖製作一個程序,通過棋盤的所有方塊(大小並不重要,但現在它是6x6)與騎士,稱爲「騎士之旅」check it out on wiki。StackOverflowError運行我的「騎士之旅」時(它幾乎完成了其他情況)
該旅程應該是關閉的,這意味着最後一個被訪問的廣場上的騎士可以「攻擊」他開始的廣場。該代碼對於某些方塊工作正常,例如,main中的輸入「遍歷(1,1,1)」生成輸出,不僅顯示他正在遍歷但回溯並且成功回溯到朝向目標的遍歷。但是,我會輸入'遍歷(1,0,0)',我得到一個StackOverflowError。 由於它有時成功,回溯和遍歷,我知道代碼的作品,我只是不知道如何擺脫錯誤。我假設我打了太多的電話,但我不知道如何解決這個問題,有很多方塊可以訪問:) 編輯了代碼,主要是因爲老師可以找到我說的一個騙子。
也許我今天有太多的巧克力,但它看起來像'traverse(1,0,0)'應該立即返回。 – 2011-03-05 01:57:21
你實現了哪種算法?我強烈建議您閱讀您提供的同一個wiki頁上提出的解決方案。分而治之的使用多項式時間。 – UmNyobe 2012-01-30 12:24:00