我编写了一个程序,该程序在之间生成100个随机整数
0和9,并显示每个数字的计数。

    int[] counts = new int[10]; // Array of ten integers

    // Store the counts of 100 random numbers
    for (int i = 1; i <= 100; i++) {
        counts[(int)(Math.random() * 10)]++;
    }

    // Display the results
    System.out.println("Count for each number between 0 and 9:");
    for (int i = 0; i < counts.length; i++) {
        System.out.println(i + "s: " + counts[i]);
    }


现在,我被要求编写一个程序,该程序生成0到99之间的1000个随机整数,并显示每个单位数字(即0、1、2,...,9)的生成次数。我如何修改此代码来做到这一点?

更新:此代码现已修复。这是任何需要它的人的更新版本。感谢所有回复如此迅速的人!

int[] counts = new int[100];


    for (int i = 1; i <= 1000; i++) {
        counts[(int)(Math.random() * 100)]++;
    }


    System.out.println("Count for each number between 0 and 9:");
    for (int i = 0; i < 10; i++) {
        System.out.println(i + "s: " + counts[i]);
    }

最佳答案

提取依赖于逻辑的值,而不是依靠幻数。最大数量和数量正在改变。进行这些变量。然后,如果将来再次更改变量,则只需要修改变量的值即可。喜欢,

final int numberCount = 1000;
final int max = 99;
int[] counts = new int[max + 1];
for (int i = 0; i < numberCount; i++) {
    counts[(int) (Math.random() * (max + 1))]++;
}
System.out.println("Count for each number between 0 and 9:");
for (int i = 0; i < 10; i++) {
    System.out.println(i + "s: " + counts[i]);
}

07-25 23:20
查看更多