ABC087B Coins
Coins
ABC087B Coins
AtCoder Beginners Selectionより。
500円玉をA枚、100円玉をB枚、50円玉をC枚持っているとき、これらの硬貨の中から何枚か選んで合計金額をちょうどX円にする方法は何通りあるか、という問題です。
1ループが硬貨1種類に対応するような3重ループを回して全探索しています。
#include <iostream>
// geschrieben von Beliar698ma
int main() {
int a, b, c, sum;
std::cin >> a >> b >> c >> sum;
int cases = 0;
int total = 0;
for (int i = 0; i <= a; i++) {
for (int j = 0; j <= b; j++) {
for (int k = 0; k <= c; k++) {
total = 500 * i + 100 * j + 50 * k;
if (total == sum) cases++;
}
}
}
std::cout << cases << "\n";
}
入力例(標準入力)
2 2 2 100
出力例(標準出力)
コインを全種各2枚持っている場合、ちょうど100円にするには
・100円玉が1枚
・50円玉が2枚
の二通りがあり得るので、出力は以下となります。
・100円玉が1枚
・50円玉が2枚
の二通りがあり得るので、出力は以下となります。
2
動作が気になりましたらpaiza.ioなどで上記のコードをテストしてみてください。