Java 使用Horner'将任何基数转换为十进制;递归地
我必须编写一个程序,使用递归和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
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
}
这不是一个完整的解决方案,但它应该足以让您继续。嘿,对不起,我不是故意这么说的。我基本上没有什么可以共享的,因为我不知道如何实现计数器,以便为递归创建终止基。所以我有这个,但我知道这是没有意义的,从周五开始我就一直在尝试这样做。。