package hannota;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import zhuanghuan.Demo01;
public class Hannota {
//orign:表示原始塔,destination:表示目的塔,temporary:表示臨時塔,即輔助塔
private static int count=0;
public static void move(int m,char orign,char destination,char temporary) //操作漢諾塔
{
if(m<0)
throw new RuntimeException();
if(m==1)
{
System.out.println("move disk 1 from"+ orign +"to"+ destination);
count++;
}
else
{
move(m-1,orign,temporary,destination);
System.out.println("move disk " +m + "from" +orign + "to"+ destination);
move(m-1,temporary,destination,orign); //使用得問題又回到原始問題,只不過規模逐漸減少而已
count++;
}
}
public static void main(String[] args)
{
InputStreamReader input=new InputStreamReader(System.in);
BufferedReader reader=new BufferedReader(input);
String ss=null;
int aa=0;
System.out.println("請輸入一個十進制數:");
try
{
ss=reader.readLine();
aa=Integer.parseInt(ss);
}
catch(Exception ex)
{
System.out.println(ex.toString());
}
Hannota.move(aa, 'A','B','C');
System.out.println("總共移動的次數爲:"+Hannota.count);
}
}
漢諾塔(遞歸實現)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.