[問題] 遞迴程式一問
先上完整程式碼:https://pastebin.com/Y4x6Mut9
這是我在網上找到的一個 八皇后問題 的解法
主要是想問 line 31 的遞迴程式
https://imgur.com/D0N0kEb.jpg

照理說 走到這個if之後,棋盤就放滿了
就算把剩下的迴圈跑完
程式應該也沒機會進到 else 裡面繼續放棋子了
但是我用 Visual Studio 跑 Debug 發現他把for迴圈跑完後
他會從line 55 跳到 line 52,然後 n 的值會從7跳到6
(假設input是8)
照理說不應該是 for 迴圈跑完 put()函式也就跑完
然後回到main繼續跑了嗎?
想請問是什麼樣的邏輯讓他可以這樣跑然後找完全部的解才跑回main?
以上,先感謝各位大大
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.236.230.242
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1554190319.A.5FB.html
→
04/02 15:33,
7年前
, 1F
04/02 15:33, 1F
→
04/02 16:16,
7年前
, 2F
04/02 16:16, 2F
可是 n 是怎麼從 7 跳回 6 的?
line 41 的 if 跑完後面的程式碼應該沒有能修改 n 的地方了吧
而且也不太懂他怎麼跳進else的
→
04/02 19:24,
7年前
, 3F
04/02 19:24, 3F
→
04/02 21:29,
7年前
, 4F
04/02 21:29, 4F
我研究一下 0.0 感謝兩位~
※ 編輯: asd860079 (36.236.230.242), 04/02/2019 22:31:58
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章