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