質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

1746閲覧

Atcoder ABC 087 B - Coins

pussy_pussy

総合スコア22

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2020/07/23 04:38

前提・実現したいこと

あなたは、500円玉をA枚、100円玉をB枚、50円玉をC枚持っています。
これらの硬貨の中から何枚かを選び、
合計金額をちょうどX円にする方法は何通りありますか。
同じ種類の硬貨どうしは区別できません。
2通りの硬貨の選び方は、ある種類の硬貨についてその硬貨を選ぶ枚数が
異なるとき区別されます。

制約
0≤A,B,C≤50
A+B+C≥1
50≤X≤20,000
A,B,Cは整数である
Xは50の倍数である

標準入力でA,B,C,Xは与えられる.

発生している問題・エラーメッセージ

期待通りの出力にならない

該当のソースコード

Python3.8.2

1inputlist = [input() for i in range(4)] 2 3n = 0 4 5A,B,C= inputlist[0],inputlist[1],inputlist[2] 6 7for i in range(int(A)+1): 8 9 X = inputlist[3] 10 11 X = int(X) - i*500 12 13 for j in range(int(B)+1): 14 15 X = X - j*100 16 17 for k in range(int(C)+1): 18 19 X = X -k*50 20 21 if X == 0: 22 n += 1 23 24print(n) 25

試したこと

コードの見直しなど

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

can110

2020/07/23 04:53

「期待通りの出力にならない」を具体的に説明ください。 (どのような入力にてどのような結果を期待したが、どのような結果になるのか?)
pussy_pussy

2020/07/23 05:02

1例を挙げると、A,B,C,X =2,2,2,100 のときに 2という結果になるのを期待したが、0になった。 期待してるのは、問題で問われているものです
can110

2020/07/23 05:07

なるほど。 念のため確認ですが、質問(欲しいもの)は、問題を解くコードがほしい、ということよいでしょうか?
pussy_pussy

2020/07/23 05:33

期待通りにならない理由について教えていただきたいです
guest

回答1

0

ベストアンサー

  • X = X - k50 でfor文を回してしまうと、たとえばk=0,1,2...で -0,-50,-150 と累積してしまいます。本来はk=2のとき100-502=0になってほしいところが100-50-50*2=-50になっているというわけです。

直すならたとえば、以下のような感じです。

python3

1inputlist = "2 2 2 100".split() 2A,B,C,X= map(int,inputlist) 3 4n = 0 5for i in range(A+1): 6 for j in range(B+1): 7 for k in range(C+1): 8 if 500*i+100*j+50*k == 100: 9 n += 1 10 11print(n) 12# 2

投稿2020/07/23 05:34

jeanbiego

総合スコア3966

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pussy_pussy

2020/07/23 06:04

原因の指摘だけを見て各ループの最後に引いた分を足すようにしたら上手くいきました。 なるほど、とても簡潔で分かりやすいですね、参考になります
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問