编写程序,生成0和9之间的100个随机整数,然后显示每个数出现的次数。
提示:使用一个包含10个整数的数组counts存放0,1,...,9的个数
下面是Java编写的解:
public static void main(String[] args) {
int[] counts = new int[11];
for(int i =0; i < 100;i++){
counts[(int)(Math.random()*10)] += 1;
}
for(int i =0; i < 10;i++){
System.out.println(counts[i]);
}
}
分析:
一般解法: 通常这道题一般做法是创建两个数组一个长度为10,count[10]. 一个长度100 numbers[100]。
接着,会给长度为100的数组每个都赋值一个随机数,再用长度为10的数组去遍历它,成功则给counts里面的数组元素+1,最后输出counts数组。
优化解法: 其实有没有长度为100的numbers[100]数组,根本无所谓,我们需要的是里面的随机数,只要随机数等于counts的下标,就可以。
核心:因此直接判断随机数的大小,给下标与随机数大小相等的数组元素值+1。(数组元素创建时全被初始为0)
//之所以创建大小是11的数组是为了防止越界