Java 递归除法

Java 递归除法,java,function,methods,recursion,Java,Function,Methods,Recursion,我需要创建一个递归方法,将第一个以10为基数的值转换为第二个以10为基数的数字。这就是我到目前为止所拥有的,但由于某些原因,我无法使递归函数正常工作。多谢各位 package lab06250; import java.util.Scanner; public class Main { public static void main(String[] args) { Number newNumber; newNumber = new Number();

我需要创建一个递归方法,将第一个以10为基数的值转换为第二个以10为基数的数字。这就是我到目前为止所拥有的,但由于某些原因,我无法使递归函数正常工作。多谢各位

package lab06250;

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
      Number newNumber;
      newNumber = new Number();
      Scanner kbd = new Scanner(System.in);
      int number;
      int remainder = 0;
      int base;

      System.out.println("Enter number:");
      number = kbd.nextInt();
      System.out.println("Enter base");
      base = kbd.nextInt();
      kbd.nextLine();

     System.out.println(Division(number, base));

    }
    public static int Division(int n, int b){
        int result;
        if (n == 1)
            result = 1;
            else
               result = Division(b, (n / b));

        return n;
    }

}

首先,我认为如果你想改变这里的基本猜测数字系统,你的逻辑中有一个流程

工作内容如下:

11在十进制数字系统中,则为10

1*(power(10,1)) + 1*(power(10,0)
它的二进制等价物1在2个碱基中最高

1011

其辛烷值为7,在8碱中最高

十三,


你需要在上面的基础上写些东西,并纠正你的逻辑。只需一个建议,使用%而不是除法,然后尝试添加结果。

您的代码有什么问题?错误?不良行为?你需要告诉我们细节。我发现你的基本案例至少有一个错误。因为你要除掉整数,结果是n==0,而不是n==1。好吧,当我试图运行我的程序时,它没有给我正确的值。它向我抛出了这个错误信息;线程主java.lang.arithmetricException中的异常:/by zero我首先从键盘获得两个正整数值,然后我必须将第一个值(以10为基数的数字)转换为第二个值的基数。谢谢,但我不想更改基数,这将保留更改。我想更改的是号码。谢谢,我会试试的。
1*(power(2*3)) + 0*(power(2*2)) + 1*(power(2*1)) + 1*(power(2*0))
1*(power(8*1)) + 3*(power(8*0))