問題描述:
漢諾塔(又稱河內塔)問題是源於印度乙個古老傳說的益智玩具。大梵天創造世界的時候做了三根金剛石柱子,在一根柱子上從下往上按照大小順序摞著64片**圓盤。大梵天命令婆羅門把圓盤從下面開始按大小順序重新擺放在另一根柱子上。並且規定,在小圓盤上不能放大圓盤,在三根柱子之間一次只能移動乙個圓盤。
程式實現:
/**
* 漢諾塔
* * @author song
*/public class hanuota else
}/**
* 移動盤子方法
** @param z1 柱子1
* @param n 編號為n的盤子
* @param z2 柱子2
*/private static void move(char z1, int n, char z2)
public static void main(string... args)
}
以上程式採用遞迴解決。 另乙個經典問題也可用遞迴解決:斐波那契數列求和
斐波那契數指的是這樣乙個數列:1、1、2、3、5、8、13、21 ..., 從第三個數開始,每個數都是前兩個數之和.
/**
* fibonacci數列
* * @author song
*/public class fibonacci else
}public static void main(string... args)
system.out.println("和:" + sum);
}}
遞迴 斐波那契數列 漢諾塔
遞迴 在乙個方法 函式 的內部呼叫該方法 函式 本身的程式設計方式。遞迴 public static void print int i public class testfebonacci 列印第n項斐波那契數列 public static int febonacci int i else publ...
學習演算法 漢諾塔演算法 斐波那契數列
漢諾塔演算法 1.有三根桿子a,b,c。a上有若干碟子 2.每次移動一塊碟子,小的只能疊在大的上面 3.把所有碟子從a杆全部移到c桿上 public class tower 漢諾塔問題 採用遞迴即可,根據問題描述,找出規律 1 n個盤子需要移動 2 n 1 次 2.1 中間一步是將最大的移動到c 2...
遞迴斐波那契數列和漢諾塔
程式呼叫自身的程式設計技巧稱為遞迴 在高階語言中,函式呼叫自己和呼叫其他函式並沒有本質的不同。我們把乙個直接呼叫自己或通過一系列的呼叫語句間接地呼叫自己的函式,稱作遞迴函式 斐波那契數列指的是這樣乙個數列 外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直接上傳 img anzoocxp 1607...