Java递归十进制到二进制函数向后打印
Java Recursive Decimal to Binary Function Printing Backwards
我正在为我的 类 之一编写实验室练习。问题问 "Write a recursive function convert a decimal number into a binary number, printing the binary number"
使用构造函数 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,这会弄乱结果。更正后的函数是。
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);
}
}
首先,在num /= 2
上调用函数之前需要打印num % 2
。并且您需要 反转 输出以获得二进制数,因为在转换为二进制数时,您从右到左键入数字。
我正在为我的 类 之一编写实验室练习。问题问 "Write a recursive function convert a decimal number into a binary number, printing the binary number"
使用构造函数 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,这会弄乱结果。更正后的函数是。
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);
}
}
首先,在num /= 2
上调用函数之前需要打印num % 2
。并且您需要 反转 输出以获得二进制数,因为在转换为二进制数时,您从右到左键入数字。