Java 如何在递归中创建数组?
这是一个来自学校的作业问题:创建一个名为toBinary的递归方法,该方法将单个整数作为参数,并以二进制形式输出等效值 这是我的密码: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)
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-这和你已经拥有的没有什么不同,你几乎就要到了。我很高兴我的回答有道理!如果这是你想要的答案,那么如果你接受了,那就太好了。