برج هانوی - جاوا - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

برج هانوی - جاوا

+1 امتیاز

برای مثال :اگر تعداد قطعه ها 2 باشد(یعنی دو قطعه aوb داریم که b روی  a  قرار دارد،وهر دو در میله شماره 1 قرار دارند خروجی زیر را باید چاپ کند:

b:1-->2

a:1-->3

b:2-->3

مشکلم توی نوشتن اون تیکه ی انگلیسیشه اینم کد برنامه ای که نوشتم:


public class Hanoi {

	public static void move(int n, String from, String to, String via) {
		  if (n == 1) {
		    System.out.println(    " : " + from + " ---> " + to);
		  } else {
		    move(n - 1, from, via, to);
		    move(1, from, to, via);
		    move(n - 1, via, to, from);
		  }
		}
	

public static void main(String[] args) {
	move(4,"1","2","3");
	
  }
}
   

 

سوال شده فروردین 14, 1393  بوسیله ی Morteza123 (امتیاز 26)   1 4 7
دوباره تگ گذاری شد فروردین 15, 1393 بوسیله ی BlueBlade
منظورت از قسمت اینگلیسیش چیه؟
نمیتونم کاری کنم که  :b و :a و... ظاهر بشه.

2 پاسخ

+1 امتیاز
 
بهترین پاسخ

    final static int FIRST_ELEMENT = (int) 'a';

    public static void move(int element, int n, String from, String to, String via) {
        if (n == 1) {
            System.out.println((char) element + " : " + from + " ---> " + to);
        } else {
            move(element + 1, n - 1, from, via, to);
            move(element, 1, from, to, via);
            move(element + 1, n - 1, via, to, from);
        }
    }

    public static void main(String[] args) {
        move(FIRST_ELEMENT, 2, "1", "2", "3");
    }
پاسخ داده شده فروردین 15, 1393 بوسیله ی hadielec (امتیاز 182)   2 4 12
انتخاب شد فروردین 15, 1393 بوسیله ی Morteza123
واقعا ممنونم ،مشکلم رفع شد
بسیار بسیار سپاسگذارم ...
+1 امتیاز
من فکر میکنم اینطوری بنویسی بهتر باشه


public class Hanoi {  
   public static void moves(int n, boolean left) {    
   if (n == 0) return; 
      moves(n-1, !left);   
    if (left) System.out.println(n + " left");  
     else      System.out.println(n + " right");   
    moves(n-1, !left);  
  }  
   public static void main(String[] args) {  
     int N = Integer.parseInt(args[0]);    
   moves(N, true);
    }  
} 

 

پاسخ داده شده فروردین 15, 1393 بوسیله ی programmer (امتیاز 139)   9 19 32
...