[グリディ]白駿5585お釣り|パイソン草


質問リンク
  • https://www.acmicpc.net/problem/5585


  • 1.問題の説明


    ある店が1000円札で買い物をすると言ったとき、おつりが一番少ないという問題がありました.
    得られる小銭単位は500,100,50,105,1の計6個である.
    例えば、750円の買い物をすると、250円がお釣りになり、250円が100円の2つ、50円の1つで、合計3つの小銭があり、出力3で正解が得られます.

    2.問題を解く


    この問題をよく検討すれば、最大単位の小銭でお釣りをする場合、小銭の個数は最小になります.ですから、500円からいくつか、残りのお金は100円などという論理をコードで書けばいいのですが、これは簡単な問題です.
    初めて作成したコードはこうです.
    # total_pay : 물건의 총 금액
    # remain_money : 1000엔에서 뺀 남은 금액
    # ans : 정답을 저장할 변수
    
    total_pay = int(input())
    remain_money = 1000-total_pay
    
    ans = 0
    ans += remain_money // 500
    remain_money = remain_money % 500
    
    ans += remain_money // 100
    remain_money = remain_money % 100
    
    ans += remain_money // 50
    remain_money = remain_money % 50
    
    ans += remain_money // 10
    remain_money = remain_money % 10
    
    ans += remain_money // 5
    remain_money = remain_money % 5
    
    ans += remain_money // 1
    remain_money = remain_money % 1
    
    print(ans)
    思いついたことを書いて、Pythonに詳しくなくて、コードを見たくありませんか?ステータスです.他人のコードを見て、簡単に編むことができます.
    # total_pay : 물건의 총 금액
    # remain_money : 1000엔에서 뺀 남은 금액
    
    total_pay = int(input())
    remain_money = 1000-total_pay
    
    a = remain_money//500 # 500엔으로 낼 수 있는 갯수 저장
    b = remain_money%500//100 # 500엔을 다 내고 난 후 100엔으로 낼 수 있는 갯수 저장
    c = remain_money%100//50 # 100엔을 다 내고 난 후 50엔으로 낼 수 있는 갯수 저장
    d = remain_money%50//10 # 반복
    e = remain_money%10//5 
    f = remain_money%5
    
    print(a+b+c+d+e+f)
    論理的な意味はやや異なるが、この問題の特徴により、必要な50円の数を求める場合、500円の残りまたは100円の残りを意味し、同様の結果となる.