Java递归十进制到二进制函数向后打印

时间:2017-05-30 23:02:47

标签: java recursion binary decimal data-conversion

我正在为我的一个课程编写实验练习。问题要求“写一个递归函数将十进制数转换为二进制数,打印二进制数” 使用构造函数public static void decToBin(int num){}

当前代码:

public class convert {
    public static void decToBin(int num) {
        if (num > 0) {
            decToBin(num /= 2);
            System.out.print(num % 2);
        }
    }

    public static void main(String[] args) {
        decToBin(50);
    }
}

输出: 011001

不幸的是,当程序解包所有被调用的方法并结束它们时,它会以二进制形式打印出我的数字,但是向后打印。 我在阳光下尝试了一切,对我来说没有任何作用。

如果有人能告诉我问题所在,请给我一些暗示或暗示。 我只需要对此代码提出第二意见。 谢谢!

2 个答案:

答案 0 :(得分:3)

在打印出与结果混淆的答案之前,你除以2。纠正的功能将是。

public static void decToBin(int num) {
    if (num > 0) {
        decToBin(num / 2);
        System.out.print(num % 2);
    }
}

然后要颠倒顺序,你可以翻转线条。

public static void decToBin(int num) {
    if (num > 0) {
        System.out.print(num % 2);
        decToBin(num / 2);
    }
}

答案 1 :(得分:0)

首先,您需要在group :development, :test do gem 'sqlite3', '1.3.12' # Call 'byebug' anywhere in the code to stop execution and get a debugger console gem 'byebug', '9.0.0', platform: :mri end 上调用函数之前打印num % 2。并且你需要反转输出才能获得二进制数,因为在转换为二进制时你可以从右到左输入数字。