Java中十进制到二进制的递归转换
所以我有代码可以把十进制数转换成二进制数。我对它使用递归算法,但我似乎无法让它做我想做的事情。以下是代码:
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方法的输出。这是为什么?我该怎么解决
非常感谢
# 1 楼答案
首先,您可能希望
toBinary
返回String
,而不是int
。当你递归时,你必须使用它的结果。所以你可以在你的if
里写当然,假设
toBinary
返回String
如果你不这样做,那么你只是在扔掉你的计算结果