有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    首先,您可能希望toBinary返回String,而不是int。当你递归时,你必须使用它的结果。所以你可以在你的if里写

    bin = toBinary(a / 2) + (a % 2);
    

    当然,假设toBinary返回String

    如果你不这样做,那么你只是在扔掉你的计算结果