2

整数 num をパラメーターとして取り、その数字を逆の順序で、1 行に 1 桁ずつ出力する再帰メソッド printDigits を実装する必要があります。

これは私がこれまでに持っているものです:

public class PrintDigits {

    public static void main(String[] args) {
        System.out.println("Reverse of no. is " + reversDigits(91));
    }

    /* Recursive function to reverse digits of num */
    public static int reversDigits(int number) {
        if (number == 0)
            return number;
        else {
            return number % 10;
        }
    }
}

欠けているコードは 1 行しかないように感じますが、それを修正するために何をする必要があるかわかりません。

4

15 に答える 15

3
public static void reversDigits(long number) {
    System.out.println(number % 10);
    if (number >= 10) {
        reversDigits(number / 10);
    }
}

これはこれまでのところ最短/単純なバージョンです;)

于 2014-11-24T15:00:40.617 に答える
1

最上位の桁 (左側) を選択して、一番右側の桁に向かって作業する必要があることがわかりました。再帰的なものを右から左に動かすことができませんでした。

public static int reverseItRecursive(int number)
{
    if (number == 0)
        return 0;

    int n = number;
    int pow = 1;

    while (n >= 10)
    {
        n = n / 10;
        pow = pow * 10;
    }
    return (n + reverseItRecursive(number - n*pow)*10);
}
于 2013-10-08T15:28:36.377 に答える