【发布时间】:2017-11-18 01:45:07
【问题描述】:
这是作业。只是要把它放在那里。我觉得最好先展示我的代码并解释我正在尝试做什么
import java.util.Scanner;
public class Question1 {
public static void main(String[] args){
int length, odd, even, largest;
int n = getNumber();
length=odd=even=largest=initialize();
String sequence=createSequence(n, largest, odd, even, length);
displaySequence(sequence);
displayStatistics(largest, length, odd, even);
}
private static int getNumber(){
Scanner kb = new Scanner(System.in);
System.out.println("Enter the value of the number: ");
int number = kb.nextInt();
return number;
}
private static int initialize(){
return 0;
}
public static String createSequence(int n, int largest, int odd, int even, int length){
String sequence="";
sequence+=n+" ";
while (n!=1){
n = (n%2==0) ? n/2 : 3*n+1;
System.out.print(", "+n);
sequence+=n+" ";
if(n%2==0){ even++;
}else{ odd++;}
if(n>=largest){ largest = n;
}
length++;
}
return sequence;
}
private static void displaySequence(String sequence){
System.out.println(sequence);
}
public static String displayStatistics(int length, int even, int odd, int largest){
String nil = "";
System.out.println("The largest number in the sequence was "+largest);
System.out.println("The length of the sequence was "+length);
System.out.println("There were "+odd+" odd numbers");
System.out.println("There were "+even+" even numbers");
return nil;
}
}
我需要尝试显示序列中的最大数字、序列的长度、序列中有多少偶数以及序列中有多少奇数。但由于我无法在 createSequence 方法中返回 int 值,因此无法获取每个统计信息的新值。阻止我显示上述统计数据。我将如何访问这些新变量以在最终方法中使用?
注意:
要求:
在 main 中声明变量
在 Initialize() 中初始化变量
createSequence(创建序列)
displaySequence(然后在单独的方法中显示序列)
最后显示统计数据,即长度、偶数、赔率、最大(以它自己的方法),这是困扰我的一个
【问题讨论】:
-
可以返回一个包含 4 个变量的数组,而不是返回 String 类型。
-
要添加@LuaiGhunim 的评论,该数组可以是一个包含 5 个字符串的数组,其中
arr[0]是您的序列,arr[1]-arr[4]是您想要的 4 个整数值,但作为字符串,然后当您取回数组时,要从字符串中获取整数,请执行Integer.parseInt(arr[1])等。 -
@DavyM 方法效果很好。谢谢。