【发布时间】:2016-02-04 20:05:27
【问题描述】:
我有一个任务是创建一个从 10 到 100 的随机数数组。 然后我需要找出数组中未列出的所有数字。 我使用嵌套的 for 循环进行分配,以交叉引用数组,然后将数组中找到的所有数字更改为 -1。最后我打印出数组中不是-1的元素。 我的教授告诉我,我是否可以只使用一个 for 循环来完成这项作业,而无需执行嵌套的 for 循环。并使计算机运行 10,000 次而不是 100 次。 那可能吗?如果有怎么办?
谢谢。
package assignment.pkg1;
import java.util.Random;
public class Assignment1 {
static Random ran = new Random();
public static void main(String[] args) {
int[] arr = new int[100];
for (int i = 0; i < 100; i++) {
arr[i] = (ran.nextInt(90)) + 10;
}
InversingArray(arr);
}
public static void InversingArray(int[] randomArray) {
int[] fullArray = new int[100];
for (int i = 0; i < 100; i++) {
fullArray[i] = i;
}
for (int i = 0; i < 100; i++) {
for (int j = 1; j < 100; j++) {
if (randomArray[j] == fullArray[i]) {
fullArray[i] = -1;
}
}
}
System.out.println("These numbers are not in randomArray: ");
for (int i = 0; i < 100; i++) {
if (fullArray[i] != -1) {
System.out.println(fullArray[i]);
}
}
}
【问题讨论】:
标签: java for-loop nested-loops