将整数值转换为多个字符串?

时间:2014-09-30 15:51:49

标签: java arrays recursion towers-of-hanoi

所以我正在为我的Algorithms课程编写一个基本的河内Tower程序,我只是重读说明书,它希望我在每一步(Ex.A = 4,3,2,1)后显示每个Towers的内容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 / disc的值(来自代码)并将其转换为单个数字以为输出填充多个数组,如下所示:

示例:n = 4 数组[4,3,2,1](Tower1)

并且能够像塔式游戏那样移动这些值

我喜欢我的代码,作为较低级别的程序员不想删除它,但我愿意倾听任何可以帮助我的人。

1 个答案:

答案 0 :(得分:0)

不确定要问的是什么,但将字符转换为整数很简单。您可以使用switch语句或向字符的int值添加数字。您可能希望对实际的Hanoi算法进行一些调整,通常使用两个递归调用来完成。 (见Hanoi tutorial)。