所以我有将十进制数转换为二进制的代码。我为此使用了递归算法,但是我似乎无法让它做我想要的事情。这是代码:
import java.util.*;
public class binaryAddition {
public static int toBinary(int a){
int bin = 0;
int remainder = 0;
if(a >= 1){
toBinary(a/2);
bin = (a%2);
}
return bin;
}
public static void main(String[] args){
System.out.println(toBinary(3));
System.out.print(toBinary(3));
}
}
因此,我想返回二进制解决方案,以便可以将其另存为main方法中的变量。但是,我当前的输出只会给我二进制数字的最后一位。我将数字3用作测试用例,并获得1作为print和println方法的输出。为什么会这样,我该如何解决?
非常感谢!
最佳答案
首先,您可能希望toBinary
返回String
,而不是int
。然后,在递归时必须使用它的结果。因此,您可以在if
内写,
bin = toBinary(a / 2) + (a % 2);
当然,假设
toBinary
返回String
。如果您不这样做,那么您将丢弃计算结果。