汉诺塔递归 C语言 代码简洁
漢諾塔自然語言:
如果是1個盤子(即最后的遞歸最后一步
? ? ?直接將A柱子上的盤子從A移動到C
?否則
? ? ?先將A柱子上的n-1個盤子借助C移動到B
? ? ?直接將A柱子上的盤子從A移動到C
? ? ?最后將B柱子上的n-1個盤子借助A移動到C
思考:
1> 今天再次看這個代碼,緩了一會有點懵(沒看懂輸出,原來輸出也是在遞歸里,所以先看到的輸出代碼是最后輸出的,即一直遞歸下去,最后遞歸到n==1的時候先輸出if(1==n)的那行代碼(沒毛病,整個人順暢了))
2>再次遇到遞歸的題目的時候,可以按照這個思路,先把自然語言寫出來,再代碼實現(xiàn)。
如果直接寫代碼的話,我可能會陷入遞歸思路的不解之中(菜勿噴),對著自然語言直接寫代碼,不用管里面的遞歸邏輯就很nice
漢諾塔是看郝斌老師學(xué)習(xí)的,上圖的最后一句話!
(郝斌老師漢諾塔->?【郝斌】-數(shù)據(jù)結(jié)構(gòu)入門_嗶哩嗶哩_bilibili)
22年3月12日 又來 發(fā)現(xiàn)之前寫的有問題
(已經(jīng)改正確了,我之前把這里的ABC加上了' ')
?
遞歸函數(shù)里面的? 形參不用加? '? '??
只有main里那個需要加 ' ',只是形參和實參一樣了 ,有些迷惑性。改成
也可。? 這樣看來被調(diào)用函數(shù)內(nèi)的參數(shù)是一類,所以不用加' '了 (x,y,z就是char類型)
?
總結(jié)
以上是生活随笔為你收集整理的汉诺塔递归 C语言 代码简洁的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 爱奇艺VIP涨价幅度高达50%,光靠涨价
- 下一篇: ERP词汇中英文对照