用java实现取1-100之间的99个不重复的随机数 然后输出没有被取出的数字

如题所述

直接用默认lang包就可以了,什么都不用加载的
public static void main(String[] args) {
int[] a = new int[100];
int[] b = new int[99];
int n = a.length;
for(int i = 0; i < a.length; i++) {
a[i] = i + 1;
}
for(int j = 0; j < b.length; j++) {
int r = (int)(Math.random() * n);
b[j] = a[r];
a[r] = a[n - 1];
n--;
System.out.print(b[j]+" ");
}
System.out.println();
System.out.println("没有被提取的是:"+a[0]);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-04-22
说下我的理解:(不知有没错啊)
首先有1-100之间的100个整数,它们的和是:sum1;
再有,99个不重复的随机整数,求出它们的和:sum2;
然后,嗯,因为那99个数是从1-100中拿出来的,所以sum1-sum2的结果就是没有取出的数了。
第2个回答  2011-04-21
import java.util.Random;
import java.util.Set;
import java.util.TreeSet;

class Palindrome {

public static void main(String args[]) {

Random rand = new Random();
Set<Integer> set = new TreeSet<Integer>();

while( set.size() <= 99){
set.add(rand.nextInt(100 + 1));
}

for(int i = 1; i <= 100; i++){
if(!set.contains(i)){
System.out.println("没有产生的数字是: " + i);
}
}
}
}

---------------------
没有产生的数字是: 3
第3个回答  推荐于2016-09-27
import java.util.ArrayList;
import java.util.List;
import java.util.Random;

public class TestRandom {

public static void main(String[] args) {

List<Integer> samples = new ArrayList<Integer>();
for (int i = 0; i < 100; i++)
samples.add(i + 1);

Random rnd = new Random();
for (int i = 0; i < 99; i++)
System.out.print(samples.remove(rnd.nextInt(100 - i)) + " ");
System.out.print("The one is " + samples.get(0));
}
}本回答被提问者采纳