所以我有将十进制数转换为二进制的代码。我为此使用了递归算法,但是我似乎无法让它做我想要的事情。这是代码:

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

如果您不这样做,那么您将丢弃计算结果。

10-06 07:17