Javaでコインの枚数を計算するプログラムを作成する際に、各コインの枚数を出力する方法は分かっても、その枚数の合計を求める方法が分からないことがあります。この記事では、Javaでコインの枚数を計算し、その合計枚数を求める方法を解説します。
1. プログラムの基本構造
まず、コインの種類を配列として定義し、ユーザーから入力された金額に対して、どのコインを何枚使用するかを計算するプログラムを考えます。以下のコードは、ユーザーから金額を入力させ、その金額に対するコインの枚数を計算して表示する基本的な例です。
int[] n = {500, 100, 50, 10, 5, 1};
Scanner sc = new Scanner(System.in);
int x = sc.nextInt();
for(int i = 0; i < n.length; i++) {
if(x >= n[i]) {
System.out.println(x / n[i]);
x %= n[i];
}
}
このプログラムでは、まず配列`n`にコインの金額を定義し、`Scanner`を使ってユーザーから金額を入力させ、その金額に応じたコインの枚数を計算して表示しています。問題は、このプログラムで「合計枚数」を求める方法です。
2. 合計枚数を求めるための変更
合計枚数を求めるには、各コインの枚数を計算した後、その枚数を累積していく必要があります。以下のコードを参考にしてください。
int[] n = {500, 100, 50, 10, 5, 1};
Scanner sc = new Scanner(System.in);
int x = sc.nextInt();
int totalCount = 0;
for(int i = 0; i < n.length; i++) {
if(x >= n[i]) {
int count = x / n[i];
totalCount += count;
System.out.println(count + "枚の" + n[i] + "円コイン");
x %= n[i];
}
}
System.out.println("合計枚数: " + totalCount + "枚");
このコードでは、`totalCount`という変数を追加し、各コインで使った枚数をその都度`totalCount`に加算しています。最終的に`totalCount`に合計枚数が格納され、プログラムの最後でその合計枚数を出力しています。
3. 実行結果の確認
このプログラムを実行すると、入力した金額に応じた各コインの枚数が表示され、さらに合計枚数も出力されるようになります。例えば、1000円の場合、以下のような結果が得られるでしょう。
1000
2枚の500円コイン
0枚の100円コイン
0枚の50円コイン
0枚の10円コイン
0枚の5円コイン
0枚の1円コイン
合計枚数: 2枚
この結果から、1000円は500円コインを2枚で支払うことが分かります。合計枚数も2枚と正しく表示されています。
4. 注意点と改善点
このプログラムは基本的なものであり、さらに改善する点もいくつかあります。例えば、コインの枚数を表示する際に、枚数が0の場合は表示しないようにすると、出力が見やすくなります。
if(count > 0) {
System.out.println(count + "枚の" + n[i] + "円コイン");
}
また、入力された金額が負の値でないかのチェックや、`Scanner`の閉じ方(`sc.close()`)なども気をつけるべき点です。
5. まとめ
Javaでコインの枚数を求め、合計枚数を計算する方法について解説しました。重要なのは、各コインの枚数を計算し、その結果を累積することで合計枚数を求めることです。これを実現するためには、`totalCount`変数を使って枚数を足し合わせる方法が有効です。これで、あなたのプログラムもさらに便利で正確なものになります。
コメント