2017年7月29日 星期六

(Java)河內塔

  1. import java.util.Scanner;  
  2. /*堆疊 
  3. 1 
  4. 2 
  5.  n-2 
  6.  n-1 
  7. 第n大盤子 
  8. */  
  9. public class Hanoi {//遞迴+堆疊  
  10.  static int n = 3;  
  11. static void hanoi(int n , int po1 , int po2 , int po3){//n個盤子  
  12.  if(n == 1){//點端  
  13.   System.out.println(n+"盤子從"+po1+" 至 "+po3);  
  14.   }  
  15.  else{  
  16.    hanoi( n-1 , po1 , po3 , po2);//n-1個盤子從木樁1 至 2  
  17.    System.out.println(n+"盤子從"+po1+" 至 "+po3);//第n最大盤子1至3  
  18.    hanoi( n-1 , po2 , po1 , po3);//n-1個盤子從木樁1 至 2  
  19.  }  
  20. }  
  21. public static void main(String[] args){  
  22.   Scanner sc = new Scanner(System.in) ;   
  23.   System.out.println("輸入盤子數 (N)");  
  24.   hanoi(n, 1 , 2 , 3);  
  25. }  
  26. }  

沒有留言:

張貼留言

注意:只有此網誌的成員可以留言。