2

私は4つのランダムな整数(1から6まで)を生成し、次に最小値を破棄して残りの3つを合計することになっているプログラムを書いています。私は4つの変数を作成しました

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 を配列に入れます。最小の数値を表す 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 に答える