生成整数并丢弃最低

时间:2012-10-05 16:02:59

标签: java random

我正在编写一个应该生成四个随机整数(从1到6)的程序,然后丢弃最低值并将剩余的三个加在一起。我用

创建了四个变量
int var1 = rand.nextInt(6)+1;
int var2 = rand.nextInt(6)+1;
int var3 = rand.nextInt(6)+1;
int var4 = rand.nextInt(6)+1;

如何让程序检测到最小的变量? (或者变量为最小的变量)我想我可能有一个方法,但编写它会非常冗长乏味,我确信有一种更简单的方法,我只是没有意识到。

3 个答案:

答案 0 :(得分:2)

在添加之前不要打扰检测。

return var1 + var2 + var3 + var4 - min(var1, min(var2, min(var3, var4)));

答案 1 :(得分:1)

将整数放入数组中。创建一个表示最小数字的int,将其设置为数组中的第一个值。然后遍历数组以查找任何较小的值。

答案 2 :(得分:0)

就我个人而言,我可能会选择Kleric的答案,但是如果你想要一个可能更具可读性的选项;将数字添加到List,然后使用Collections.sort(list)按升序排序,然后简单地从索引1求和:

List<Integer> ints = new ArrayList<Integer>();
for (int i = 0; i < 4; i++) {
    ints.add(rand.nextInt(6) + 1);
}
Collections.sort(ints);
int sum = 0;
for (int i = 1; i < ints.size(); i++) {
    sum += ints.get(i);
}

这显然是一种有点不必要的排序,因此不是实现这一目标的最佳表现方式,但我相信它的可读性和可维护性足以值得一提,以防这不是性能关键代码。< / p>