递归的horner方案java

时间:2016-12-05 17:20:04

标签: java recursion

我正在尝试编程一个递归的角色。 目前它输出正确的数字,但顺序错误(反转)。 但是输出应该是向前的。 任何提示?

public class uhs {
    public static void main (String[] args) {

        int z = Integer.parseInt(args[0]);
        int q = Integer.parseInt(args[1]);
        hornerUmkehrungRekursiv(z, q);
        System.out.println("");
    }

    static int hornerUmkehrungRekursiv(int z, int q) {
        if (z == 0) {
            return 0;
        } else {
            System.out.print(z % q);
            return (hornerUmkehrungRekursiv(z / q, q) * 2) + z % q;
        }
    }
}

2 个答案:

答案 0 :(得分:0)

如果你不能使用StringBuilder变量,那么你需要更改你的代码,以便它进行递归调用直到最后一个除法,然后它打印余数。您只需稍微更改您的代码,这是一个如何完成它的示例:

public class uhs {
    public static void main(String[] args) {
        int z = Integer.parseInt(args[0]);
        int q = Integer.parseInt(args[1]);
        System.out.println(hornerUmkehrungRekursiv(z, q));
    }

    static int hornerUmkehrungRekursiv(int z, int q) {
        if (z / q != 0) {
            System.out.print(hornerUmkehrungRekursiv(z / q, q));
        }
        return z % q;
    }
}

答案 1 :(得分:0)

您需要在递归调用后执行print:

<div class="parent">
  <img src="http://s3.favim.com/610/151107/art-black-and-white-geometric-minimal-Favim.com-3533393.jpg">
  <div class="text">allo</div>
</div>

为您提供预期结果“11010010”。