这是学校的作业问题:创建一个称为toBinary的递归方法,该方法以单个整数作为参数并以二进制形式输出等效方法。

这是我的代码:

import java.util.*;
class MethodAssign6{
static void toBinary(int a){
    if(a==0){
        System.out.print("theArrayOrStringIWant");
    }
    else{
        System.out.println(a%2);
        toBinary(a/2);
    }
}
public static void main(String[]args){
    toBinary(24);
}
}


如您所见,当问题只希望我将单个整数作为参数时,我不知道如何创建一个数组来保存所有a%2值。有人请帮助我,我将非常感谢。

最佳答案

我认为您走在正确的轨道上-但是您当前的方法会将数字反序输出。尝试进行递归调用,然后打印:

static void toBinary(int a){
    if(a!=0) {
        toBinary(a/2);
        System.out.print(a%2);
    }
}


您还可以使用String获得类似的效果:

static String toBinary(int a){
    if(a==0) {
        return "";
    }
    else {
        return toBinary(a/2) + (a%2);
    }
}

public static void main(String[]args){
    System.out.println(toBinary(24));
}

10-07 17:21