本サイトABC087B – Coinsへは以下から
問題:Coins
あなたは、500円玉を A 枚、100 円玉を B 枚、50 円玉を C 枚持っています。 これらの硬貨の中から何枚かを選び、合計金額をちょうど X 円にする方法は何通りありますか。
同じ種類の硬貨どうしは区別できません。2 通りの硬貨の選び方は、ある種類の硬貨についてその硬貨を選ぶ枚数が異なるとき区別されます。
制約
- 0≤A,B,C≤50
- A+B+C≥1
- 50≤X≤20000
- A,B,C は整数である
- X は 50 の倍数である
入力
A
B
C
X
出力
硬貨を選ぶ方法の個数を出力せよ。
入力例 1
2
2
2
100
出力例 1
2
条件を満たす選び方は以下の 2 通りです。
- 500 円玉を 0 枚、100 円玉を 1 枚、50 円玉を 0 枚選ぶ。
- 500 円玉を 0 枚、100 円玉を 0 枚、50 円玉を 2 枚選ぶ。
入力例 2
5
1
0
150
出力例 2
0
合計金額をちょうど X 円にする必要があることに注意してください。
入力例 3
30
40
50
6000
出力例 3
213
解答例
A = int(input())
B = int(input())
C = int(input())
X = int(input())
count = 0
for a in range(A+1):
for b in range(B+1):
for c in range(C+1):
if 500*a + 100*b + 50*c == X:
count += 1
print(count)
解説
この問題は、与えられた硬貨の組み合わせで目的の合計金額X
を作成する方法の数を求めるものです。具体的には、500円玉、100円玉、50円玉の組み合わせでX
円を作る方法が何通りあるかを計算します。
以下は、この問題を解くためのPythonのプログラムの手順です。
- 入力の受け取り:
int(input())
を使用して、500円玉の数A
、100円玉の数B
、50円玉の数C
、目的の合計金額X
を受け取ります。
- 初期化:
count
を0に初期化します。これは、目的の合計金額X
を作成する方法の数をカウントするための変数です。
- 組み合わせの計算:
- 3つの
for
ループをネストして、500円玉、100円玉、50円玉のすべての可能な組み合わせを試します。 - 各組み合わせについて、合計金額が
X
と一致するかどうかを確認します。一致する場合、count
を1増やします。
- 3つの
- 結果の出力:
print(count)
を使用して、目的の合計金額X
を作成する方法の数を出力します。
以下は、この問題を解くためのPython3のプログラムです。
# 入力の受け取り
A = int(input())
B = int(input())
C = int(input())
X = int(input())
# 初期化
count = 0
# 組み合わせの計算
for a in range(A+1):
for b in range(B+1):
for c in range(C+1):
if 500*a + 100*b + 50*c == X:
count += 1
# 結果の出力
print(count)
【python】input関数の使い方
python公式ドキュメントはこちら Pythonで用意されている組み込み関数の input 関数の使い方です。キーボードから入力した文字や数値を受け取る際に使用します。 input …
【python】for文の使い方
python公式ドキュメントはこちら Python の for 文は、 C 言語や Pascal 言語での for 文とは少し異なり、任意のシーケンス型 (リストまたは文字列) にわたって反復を行…
【python】if文の使い方
python公式ドキュメントはこちら if 文は条件分岐をおこなうための文法です。Pythonのif文は、一般的な他のプログラミング言語と同様に、条件式の結果が真(true)である…
【python】print関数の使い方
python公式ドキュメントはこちら Pythonで用意されている組み込み関数の中の print 関数の使い方です。引数に指定した文字列や数値、変数に格納された値などを標準出力…
次の問題へ
AtCoder Beginners Selection ABC083B – Some Sumsをpythonで解いてみた
本サイトABC083B – Some Sumsへは以下から 問題:Some Sums 1 以上 N 以下の整数のうち、10 進法での各桁の和が A 以上 B 以下であ…
前の問題へ
AtCoder Beginners Selection ABC081B – Shift onlyをpythonで解いてみた
本サイトABC081B – Shift onlyへは以下から 問題:Shift only 黒板に N 個の正の整数 A1,…,AN が書かれています.すぬけ君は,黒板に書かれている整数がすべて偶数で…
一覧へ
AtCoder Beginners Selection 11問をpythonで解いてみた
AtCoderの初心者向け問題集である AtCoder Beginners Selection の11問をPythonで解説します。 AtCoder Beginners Selection Welcome to AtCoder a = int(input()) b, c…
コメント