2

我正在编写一个程序,它应该生成四个随机整数(从 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;

我将如何让程序检测最小变量?(或与最小相关的变量)我想我可能有一个方法,但是写起来会很长而且很乏味,而且我敢肯定有一种更简单的方法,我只是没有意识到。

4

3 回答 3

2

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

return var1 + var2 + var3 + var4 - min(var1, min(var2, min(var3, var4)));
于 2012-10-05T16:06:25.357 回答
1

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

于 2012-10-05T16:06:52.150 回答
0

就我个人而言,我可能会选择 Kleric 的答案,但如果你想要一个选项,它可能更具可读性;将数字添加到 a 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);
}

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

于 2012-10-05T16:12:40.877 回答