Java 如何在递归中创建数组?

Java 如何在递归中创建数组?,java,recursion,Java,Recursion,这是一个来自学校的作业问题:创建一个名为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的递归方法,该方法将单个整数作为参数,并以二进制形式输出等效值

这是我的密码:

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值,而问题只希望我有一个整数作为参数。请任何人帮助我,我将非常感激。

通常,像这样的递归方法将有一个公共方法,也有一个私有方法用于完成计算。因此,public方法接受一个整数,然后设置数组来保存这些值。私有数组接受整数,也接受当前数组,以便将其值添加到数组中。最后,当私有方法返回时,公共方法将解析数组并返回结果。

通常,像这样的递归方法将使用公共方法和私有方法来完成计算。因此,public方法接受一个整数,然后设置数组来保存这些值。私有数组接受整数,也接受当前数组,以便将其值添加到数组中。最后,当private方法返回时,public方法将解析数组并返回结果。

如果只需打印位,实际上不需要将它们保存在数组中。您可以随时使用System.out.print。确保注意调用print和递归调用的顺序,以免将数字向后打印。

如果只需打印位,实际上不需要将它们保存在数组中。您可以随时使用System.out.print。请务必注意调用print和递归调用的顺序,以免将数字向后打印。

我认为您的方法是正确的,但您当前的方法会将数字向后打印出来。尝试执行递归调用,然后打印:

static void toBinary(int a){
    if(a!=0) {
        toBinary(a/2);
        System.out.print(a%2);
    }
}
使用字符串也可以获得类似的效果:

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));
}

我认为你的思路是对的,但你目前的方法会把数字倒排出来。尝试执行递归调用,然后打印:

static void toBinary(int a){
    if(a!=0) {
        toBinary(a/2);
        System.out.print(a%2);
    }
}
使用字符串也可以获得类似的效果:

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));
}

欢迎来到堆栈溢出。通常,答案最好解释为什么它们是正确的,而不仅仅是一个代码转储。如果你给出更彻底的答案,你将获得更多的投票权(从而获得声誉和特权)。欢迎来到堆栈溢出。通常,答案最好解释为什么它们是正确的,而不仅仅是一个代码转储。如果你给出更彻底的答案,你会获得更多的选票(因此也会获得声誉和特权)。@cook-cook-这和你已经拥有的东西没什么不同,你几乎已经做到了。我很高兴我的回答有道理!如果这是你想要的答案,那么如果你接受了,那就太好了。@cook-cook-这和你已经拥有的没有什么不同,你几乎就要到了。我很高兴我的回答有道理!如果这是你想要的答案,那么如果你接受了,那就太好了。