Java 49个项目中的第6个,前6个don';t包括一个副本,第7个数字必须不是前6个数字中的任何一个
第七个数字单独显示。所以在我看来,我不能把7个数字放在一个数组中 我想打印一行中的前6个数字和分开的第7个数字 有人能帮忙吗 前6个数字介于1-49和低高排序之间,不包含重复项 第7个数字不是前6个数字中的一个,而是介于1-49之间 我已经生成了第7个数字,但有时它是前6个数字之一的重复 这就是任务: 写一个程序,生成随机数,我可以在我的下一张彩票上输入。程序启动时,应生成7个数字。前6项按升序输出。第七个数字是超数。它是单独发行的。它不是按顺序排列的Java 49个项目中的第6个,前6个don';t包括一个副本,第7个数字必须不是前6个数字中的任何一个,java,random,int,Java,Random,Int,第七个数字单独显示。所以在我看来,我不能把7个数字放在一个数组中 我想打印一行中的前6个数字和分开的第7个数字 有人能帮忙吗 前6个数字介于1-49和低高排序之间,不包含重复项 第7个数字不是前6个数字中的一个,而是介于1-49之间 我已经生成了第7个数字,但有时它是前6个数字之一的重复 这就是任务: 写一个程序,生成随机数,我可以在我的下一张彩票上输入。程序启动时,应生成7个数字。前6项按升序输出。第七个数字是超数。它是单独发行的。它不是按顺序排列的 import java.util.Arra
import java.util.Arrays;
import java.util.Random;
public class RandomizedArrayExample
{
public static int[] zahlen = null;
public static void main(String[] args)
{
Random W = new Random();
try
{
zahlen = new int[6];
Random y = new Random();
int gesamt = 0;
boolean status = true;
while(status)
{
int zahl = y.nextInt(49)+1;
if(!isCompleted()){
if(!isDuplicate(zahl)){
zahlen[gesamt] = zahl;
gesamt++;
}else{
continue;
}
}else{
status = false;
}
}
} catch (Exception e) {
e.printStackTrace();
}
for(int q = 0; q<6-1; q++) {
for (int j = q+1; j<zahlen.length; j++) {
if(zahlen[q] > zahlen[j]) {
int k = zahlen[q];
zahlen[q] = zahlen[j];
zahlen[j] = k;
}
}
}
String ihreZahlen = "----Ersten 6 Zahlen----";
String superZahl = "-------Superzahl-------";
int x = W.nextInt(49)+1;
System.out.println(ihreZahlen);
System.out.println(Arrays.toString(zahlen));
System.out.println(superZahl);
}
public static boolean isCompleted(){
boolean status = true;
for (int i = 0; i < zahlen.length; i++){
if(zahlen[i]==0){
status = false;
break;
}
}
return status;
}
public static boolean isDuplicate(int num){
boolean status = false;
for (int i = 0; i < zahlen.length; i++){
if(zahlen[i]== num){
status = true;
break;
}
}
return status;
}
}
当您执行
intx=W.nextInt(49)+1时,您会看到38是重复的代码>您有可能获得与示例输出相同的副本。相反,您需要一个循环,再次使用isDuplicate()
检查是否有重复项,并在没有重复项时中断循环
对于一个不同的可能是面糊的解决方案,将所有7个数字放在一个数组中没有错。你可以把它们分成6个数字和1个数字。这里有一个方法:
Random w = new Random();
int[] allNumbers = IntStream.generate(() -> w.nextInt(49) + 1)
.distinct()
.limit(7)
.toArray();
int[] numbers = Arrays.copyOf(allNumbers, 6);
Arrays.sort(numbers);
int superNumber = allNumbers[6];
String ihreZahlen = "----Ersten 6 Zahlen----";
String superZahl = "-------Superzahl-------";
System.out.println(ihreZahlen);
System.out.println(Arrays.toString(numbers));
System.out.println(superZahl);
System.out.println(superNumber);
示例输出:
----Ersten 6 Zahlen----
[14, 16, 30, 38, 41, 45]
-------Superzahl-------
38
当你做intx=W.nextInt(49)+1代码>您有可能获得与示例输出相同的副本。相反,您需要一个循环,再次使用isDuplicate()
检查是否有重复项,并在没有重复项时中断循环
对于一个不同的可能是面糊的解决方案,将所有7个数字放在一个数组中没有错。你可以把它们分成6个数字和1个数字。这里有一个方法:
Random w = new Random();
int[] allNumbers = IntStream.generate(() -> w.nextInt(49) + 1)
.distinct()
.limit(7)
.toArray();
int[] numbers = Arrays.copyOf(allNumbers, 6);
Arrays.sort(numbers);
int superNumber = allNumbers[6];
String ihreZahlen = "----Ersten 6 Zahlen----";
String superZahl = "-------Superzahl-------";
System.out.println(ihreZahlen);
System.out.println(Arrays.toString(numbers));
System.out.println(superZahl);
System.out.println(superNumber);
示例输出:
----Ersten 6 Zahlen----
[14, 16, 30, 38, 41, 45]
-------Superzahl-------
38
在这里,您可以在不检查x是否重复的情况下为x指定一个值:
int x = W.nextInt(49)+1;
添加一些逻辑来检查它是否已经在您的“zahlen数组”中。最简单的方法是在它下面添加一个while循环,并使用isDuplicate方法检查它是否已经在zahlen数组中。在这种情况下,您可以指定x个新值
int x;
do{
x = W.nextInt(49)+1;
}while(isDuplicate(x));
在这里,您可以在不检查x是否重复的情况下为x指定一个值:
int x = W.nextInt(49)+1;
添加一些逻辑来检查它是否已经在您的“zahlen数组”中。最简单的方法是在它下面添加一个while循环,并使用isDuplicate方法检查它是否已经在zahlen数组中。在这种情况下,您可以指定x个新值
int x;
do{
x = W.nextInt(49)+1;
}while(isDuplicate(x));
我建议这样做:1)生成49个数字的数组2)随机数组3)从数组中获取前7个数字-我仍然不明白是什么阻止了你请显示程序的输出示例。我建议这样做:1)生成49个数字的数组2)随机数组3)从数组中获取前7个数字数组-我仍然不明白是什么阻止了你请显示你程序的输出示例。