遞迴漢諾塔

2021-08-29 07:43:56 字數 476 閱讀 8488

遞迴問題:遞迴要有三個要素:

1.遞迴結束條件

2.遞迴結束時的處理

3.抽取重複的邏輯,剝離外殼(重點都在這一步)

漢諾塔問題:把圓盤從下面開始按大小順序重新擺放在另一根柱子上。且規定,在小圓盤上不能放大圓盤,在三根柱子之間一次只能移動乙個圓盤。 

首先,要搞這個編碼得要知道漢諾塔的解題思路:

1.把a塔上編號1~n-1的圓盤移到b上

2.以c為輔助塔,把a塔上編號為n的圓盤移到c上

3.把a塔上編號1~n-1的圓盤移到b上,以c為輔助塔

然後按照思路程式設計就可以了,簡單粗暴(註解很重要,記得看註解):

private static void move(int n,string a,string b,string c)else

} public static void main(string args)

漢諾塔 遞迴

個人理解遞迴函式的基本要求就是,函式中呼叫函式本身,滿足特定的條件後返回。include include include include include include include include include include include include include 標頭檔案引用的較多...

遞迴 漢諾塔

漢諾塔問題。這裡順便可以求出一共需要搬運的次數。以下是漢諾塔問題的解法 class hanoi from 搬運的起點,to 搬運的目標地,middle 臨時中轉地 private static int hanoi int level,char from,char to,char middle int...

漢諾塔遞迴

a 操作區 b 緩衝區 c 目標區 這樣程式可以改為 move n,操作區,緩衝區,目標區 我們的目的 將 操作區 的數移動到 目標區 裡,所以函式執行只有一句話 操作區 目標區 第一步 將 操作區a 前n 1個數移動到 緩衝區b 裡,這時 緩衝區b 就是我們這一步的目標區 所以是move n 1,...