Java 使用Horner'将任何基数转换为十进制;递归地

Java 使用Horner'将任何基数转换为十进制;递归地,java,recursion,in-place,base-conversion,Java,Recursion,In Place,Base Conversion,我必须编写一个程序,使用递归和Horner方案将任意基转换为十进制。我能用的就是: 具有两个参数的int方法,如公共静态int horner(int[]位,int base){}。我必须就地实现该方法,也就是说,除了作为参数给出的数组之外,我不能使用任何其他数组 辅助方法 我该怎么做?我只有这个,但我知道这毫无意义。我不知道如何实现计数器,以便为递归创建终止基 public static int horner (int[] digits, int base) { int n = digi

我必须编写一个程序,使用递归和Horner方案将任意基转换为十进制。我能用的就是:

  • 具有两个参数的int方法,如公共静态int horner(int[]位,int base){}。我必须就地实现该方法,也就是说,除了作为参数给出的数组之外,我不能使用任何其他数组
  • 辅助方法
  • 我该怎么做?我只有这个,但我知道这毫无意义。我不知道如何实现计数器,以便为递归创建终止基

    public static int horner (int[] digits, int base) {
        int n = digits.length;
        int a = 0;
        int decimal = digits[0];
    
        if (n == 0) {
            System.out.println(decimal+digits[a]);
            return digits[a];
        }
    
        decimal = decimal * base + horner(digits,base);
    
        return decimal;
    }
    

    提示:创建一个助手方法,该方法接受一个额外的
    索引
    参数,告诉它要查看哪个数组索引。助手应该递归地调用自己,每次递增
    索引

    public static int hornerHelper(int[] digits, int index, int base) {
        // majority of code here
        // recursively call hornerHelper(digits, index + 1, base) at some point
    }
    
    然后,主函数只需在第一个索引处启动该过程

    public static int horner(int[] digits, int base) {
        return hornerHelper(digits, 0, base);  // start at index 0
    }
    

    这不是一个完整的解决方案,但它应该足以让您继续。

    嘿,对不起,我不是故意这么说的。我基本上没有什么可以共享的,因为我不知道如何实现计数器,以便为递归创建终止基。所以我有这个,但我知道这是没有意义的,从周五开始我就一直在尝试这样做。。