2014-09-30 2 views
0

그래서 Algorithms 클래스의 기본 Tower of Hanoi 프로그램을 작성 중이며 지침을 다시 읽었으며 각 단계 (예 : A = 4,3,2,1)가 4 인 경우 각 타워의 내용을 표시하려고합니다. 타워 A의 맨 아래 디스크이고 맨 위가 1입니다. 때문에 다른 코드이 관련된되지를 데정수 값을 여러 문자열로 변환 하시겠습니까?

import java.util.Scanner; 

public class Driver { 


public static void main(String[]args) { 
    Scanner keyboard = new Scanner (System.in); 
    int discs; 
    System.out.println("How many discs are in the starting tower? "); 
    discs = keyboard.nextInt(); 
    keyboard.close(); 
    Hanoi(discs, 'A', 'B', 'C'); 
} 

public static void Hanoi(int n, char Tower1, char Tower2, char Tower3){ 
    if (n>0) { 
     Hanoi(n-1, Tower1, Tower2, Tower3); 

     if(n%2 == 0){ 
     System.out.println("Move disc from " + Tower1 + " to " + Tower2); 
     System.out.println("Move disc from " + Tower1 + " to " + Tower3); 
     System.out.println("Move disc from " + Tower2 + " to " + Tower3); 
     } 
     else{ 
      System.out.println("Move disc from " + Tower1 + " to " + Tower3); 
      System.out.println("Move disc from " + Tower1 + " to " + Tower2); 
      System.out.println("Move disc from " + Tower3 + " to " + Tower2); 
     } 
    } 
} 

은 아마도 몇 괄호가 누락되었습니다 : 이미 프로그램에 기록 된 다음과 같은 코드가 있습니다.

예 :

내 질문에 내가 이렇게 같은 출력을 위해 여러 배열을 채 웁니다 (코드에서) N/디스크의 값을 개별 숫자로 변환 할 수 있는지 여부이다 N = 4 배열 [4,3,2,1] (Tower1)

당신은 내가 코드를 좋아하는 내가 가진 및 낮은 수준의 프로그래머로 것

할 것이다 타워 게임으로 주변이 값을 이동할 수 나는 그것을 삭제할 필요가 없지만 누구든지 나를 도울 수있는 사람의 말에 기꺼이 귀 기울입니다.

+0

원하는 것은 문자를 숫자로 변환하는 것입니까? – Ari

답변

0

물어 보는 것이 확실하지 않지만 문자를 정수로 변환하는 것이 간단합니다. switch 문을 사용하거나 문자의 int 값에 숫자를 추가하기 만하면됩니다. 실제 하노이 알고리즘을 조정할 수도 있습니다. 일반적으로 두 번의 재귀 호출을 통해 수행됩니다. (Hanoi tutorial 참조).

관련 문제