public class NumberRandom {
/**
* 现有1~100共一百个自然数,已随机放入一个有98个元素的数组a[98]。
* 要求写出一个尽量简单的方案,找出没有被放入数组的那2个数,并在屏
* 幕上打印这2个数。注意:程序不用实现自然数随机放入数组的过程。
*/
public static void main(String[] args) {
List list=new ArrayList();
int temp;
for(int i=1;i<=100;i++){
list.add(i);
}
for(int i=1;i<=98;i++){
do {
temp = (int) (Math.random() * 100 + 1);
} while (list.get(temp)=="0");
list.set(temp, "0");
}
for(int i=1;i<=100;i++){
if((Integer)list.get(i)!=0)
System.out.println(list.get(i));
} }
}大家可以考下去执行下,谢谢帮助
/**
* 现有1~100共一百个自然数,已随机放入一个有98个元素的数组a[98]。
* 要求写出一个尽量简单的方案,找出没有被放入数组的那2个数,并在屏
* 幕上打印这2个数。注意:程序不用实现自然数随机放入数组的过程。
*/
public static void main(String[] args) {
List list=new ArrayList();
int temp;
for(int i=1;i<=100;i++){
list.add(i);
}
for(int i=1;i<=98;i++){
do {
temp = (int) (Math.random() * 100 + 1);
} while (list.get(temp)=="0");
list.set(temp, "0");
}
for(int i=1;i<=100;i++){
if((Integer)list.get(i)!=0)
System.out.println(list.get(i));
} }
}大家可以考下去执行下,谢谢帮助
int[] b 存98个数
List<Integer> bb = Arrays.asList(b);
a.removeAll(bb); //集合相减
for (Integer i : a) {
System.out.println(i);
}
恩,前提是你说的,只要找一下没有放到数组里的那两个数,直接用数组就好了,扫描一下含有98个数的数组,同时创建一个长度101的数组(第1位,也就是索引为0的不用),如果元素的值是4,那你就把4放到101数组的第5位,然后最后没有赋值的 也就是值为0的 就是我们要的。
你是直接放到list里去的,感觉复杂了。