漢諾塔算法代碼實現
package com.aaa.recursion;
public class Hanoi {
public static void main(String[] args) {
long start=System.currentTimeMillis();
move(20,"A","B","C");
long end=System.currentTimeMillis();
System.out.println("漢諾塔時間:");
System.out.println((end-start)/1000+"秒");
}
/**
* 最開始:B中介->C中介-->A中介;不斷遞歸調用;
* @param dish 盤子個數
* @param from 初始塔座
* @param temp 中介塔座
* @param to 目標塔座
*/
private static void move(int dish, String from, String temp,String to) {
if(dish==1)
System.out.println("\t\t將盤子"+dish+"從塔座"+from+"移動到"+to);
else{
//超過1的時候,遞歸調用方法本身;A為初始目標,B為目標,C:中介
move(dish-1,from,to,temp);
System.out.println("將盤子"+dish+"從塔座"+from+"移動到"+to);
//繼續移動:A為中介,B初始塔座,C:目標;
move(dish-1,temp,from,to);
}
}
}
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。