自己的理解
看了半天評論,沒半點毛用,還是靠自己查百度才懂得代碼邏輯,我就想問,跟別人講個邏輯這么難? ?
move(n, a, b, c)
我先給每個參數定義一個性質
?n: 盤子數, a: 現在叫起點 b: 我給它叫中轉站,不起作用,只是給a和c搭橋,做中間人 c: 尾點?
將盤子分為n和n-1整體,那現在我可以直接看成就只有兩個盤子,直接操作?
1:先將n-1整體傳到b,那么現在我可以認為現在a是起點,b成了尾點,c就成了中轉站 ?=>move(n-1, a, c, b)?
2:將n傳到c,那直接傳就行 => print a, '=>', c?
3:最后將n-1整體傳給c,與步驟1邏輯一樣,b起點c尾點a中轉站 => move(n-1, b, a, c)
* n=1是個例外,自己寫個if語句給隔絕掉就行,至于n是否小于0,看自己心情寫,我覺得沒必要,現在討論的是漢諾塔,是用來解決多塔型計算問題,肯定是有盤子啦,
2020-05-06
終于有個能看得明白的
2020-04-28
太謝謝你了,看了你的描述終于明白了
2020-04-04
看你寫的終于看懂了。。他們的評論表達真的難?
2020-02-28
把原來代碼定義公式中的abc,替換成其他字母 比如xyz? 然后出結果之后對著看就很容易明白代碼的邏輯了