gpt4 book ai didi

java - 如何检查随机生成的数组中的每个 int 是否偶数,如果不是,则让它创建另一个随机数组?

转载 作者:行者123 更新时间:2023-11-30 10:08:04 25 4
gpt4 key购买 nike

所以我正在尝试创建一个程序来创建一个随机生成的数组,其中的数字介于 0 和 10 之间。每当 4x4 数组中的数字是奇数时,我希望它生成一个全新的数组并打印每个丢弃的数组,直到它创建一个只有偶数的 4x4 数组。现在的问题是我无法理解如何修复最后一个 for 并使其与应该重新开始创建数组的 boolean 值 b 一起正常工作.

import java.util.Scanner;

public class EvenArrayGenerator {
public static void main(String a[]) {

Boolean b;
do {
b = true;
int[][] Array = new int[4][4];
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++)
Array[i][j] = (int) (Math.random() * 11);
}

for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
System.out.print(Array[i][j] + " ");

}
System.out.println();
}
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
if (Array[i][j] % 2 != 0)
b = false;

}
}

} while (b);
}
}

最佳答案

public class ArrayGen {

private int[][] array = new int[4][4];
private int iterations = 1; // you always start with one iteration

public static void main (String[] args) {

ArrayGen ag = new ArrayGen();

ag.reScramble();

while(!ag.isAllEven()) {

ag.reScramble();
ag.iterations++;
}

// this is just a nice visualisation

for (int i = 0; i < 4; i++) {

System.out.print("[");

for (int j = 0; j < 4; j++) {

System.out.print(ag.array[i][j] +((j != 3)? ", " : ""));
}

System.out.print("]\n");
}
System.out.println(ag.iterations + " iterations needed to get all-even array.");
}

private void reScramble () {

for (int i = 0; i < 4; i++) {

for (int j = 0; j < 4; j++) {

array[i][j] = (int)(Math.random() * 11);
}
}
}

private boolean isAllEven () {

for (int i = 0; i < 4; i++) {

for (int j = 0; j < 4; j++) {

if (array[i][j] % 2 == 1) {

return false;
}
}
}

return true;
}
}

我认为这是一个很好的解决方案。将代码重构为结构化方法绝不是一个坏主意。希望对您有所帮助!

关于java - 如何检查随机生成的数组中的每个 int 是否偶数,如果不是,则让它创建另一个随机数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53957597/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com