閲覧ありがとうございます。
javaの学習サイトで下記のような問題を発見したのですが導き方が全くわかりませんでした。
かなり考えて調べたのですが答えを導き出せなかったのでご教示いただきたいです・・・。
500円玉をA枚、100円玉をB枚、50円玉をC枚持っていたときに、
これらの硬貨の中から何枚かを選び、合計金額をちょうど X円にする
組み合わせを求める処理(関数)を作成してください。
条件/制約:
A,B,C,Xは全てintの引数。
実行例:
引数:2, 10, 3, 1100
結果:500円 2枚、100円 1枚、50円 0枚
500円 2枚、100円 0枚、50円 2枚
500円 1枚、100円 6枚、50円 0枚
500円 1枚、100円 5枚、50円 2枚
500円 0枚、100円 10枚、50円 2枚
for文でループさせる、ということはさすがにわかるのですが複数の値を取得し、
さらにそれを全パターン取るとなると正直お手上げでした。
このような関数を作成し、1パターンは取得できたもののここから進めませんでした。
お手数をおかけしますがどなたか教えていただきたいです。
java
1 2import java.util.*; 3 4public class Main { 5 public static void main(String[] args) throws Exception { 6 coinCheck(2, 9, 20, 900); 7 } 8 9 public static void coinCheck(int coin500,int coin100,int coin50,int total){ 10 int count500 = 0; //各コインの枚数 11 int count100 = 0; 12 int count50 = 0; 13 14 for(int i = 0;(i <= coin500) && total >=500;i++){ 15 count500++; 16 total -= 500; 17 } 18 19 for(int i = 1;(i <= coin100) && total>=100;i++){ 20 count100++; 21 total -= 100; 22 } 23 24 for(int i = 1;(i <= coin50) && total >=50;i++){ 25 count50++; 26 total -= 50; 27 } 28 29 if(total == 0 ){ 30 System.out.println("500円玉:"+count500); 31 System.out.println("100円玉:"+count100); 32 System.out.println("50円玉:"+count50); 33 System.out.println(total); 34 } 35 } 36 37} 38 39 40
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。