코딩 스쿨에 오신것을 환영합니다~~

질의응답 게시판

 
조건문을 이용한 거스름돈 계산에 질문있습니다.
수 * | 2019-03-24
▷ 첨부파일 : 문제3.py (1446 Byte)      [저장]

최소개수의 거스름돈을 계산하는 프로그램을 만들어보고있는데요.

거스름돈 단위는 : 5만원, 만원, 5천원, 천원, 5백원, 백원, 5십원, 십원이고
조건문을 활용해서 거스름돈의 개수가 0인 화폐는 표시가 되지 않게 만들고 싶습니다.

<동작예시>
상품의 가격을 얼마입니까?: 12500
얼마를 받았습니까?: 20000
거스름돈은 7500원 입니다.
거스름돈을 아래와 같이 지급합니다.
5,000x1, 1,000x2, 500x1 


..
다른건 다 할 수 있는데 거스름돈의 개수가 0인 화폐를 표시하지 않으려면
어떻게 해야 될까요...?
아무리 해봐도 답이 안나옵니다 ㅠㅠ

  • 관 * 자
  • 2019-03-24 (21:37)
다음과 같이 하시면 됩니다.

요약하면 해당 거스름돈이 존재하는 경우에만(//연산의 결과가 0보다 크다면) 화면에 출력하면 됩니다.

-------------------------------------------------------------------------------

price = int(input("상품의 가격은 얼마입니까? : "))
payment = int(input("얼마를 받았습니까? : "))
change = payment - price

if price == payment :
    print("거스름돈을 지급하지 않습니다.")

elif price > payment :
    print("돈을",price-payment,"원 더 받아야합니다.")

else :
    print("거스름돈은",change,"원 입니다.")
    print("거스름돈을 아래와 같이 지급합니다.")


    change_50000 = change//50000
    change_10000 = (change - change_50000*50000)//10000
    change_5000 = (change - change_50000*50000 - change_10000*10000)//5000
    change_1000 = (change - change_50000*50000 - change_10000*10000 - change_5000*5000)//1000
    change_500 = (change - change_50000*50000 - change_10000*10000 - change_5000*5000 - change_1000*1000)//500
    change_100 = (change - change_50000*50000 - change_10000*10000 - change_5000*5000 - change_1000*1000 - change_500*500)//100
    change_50 = (change - change_50000*50000 - change_10000*10000 - change_5000*5000 - change_1000*1000 - change_500*500 - change_100*100)//50
    change_10 = (change - change_50000*50000 - change_10000*10000 - change_5000*5000 - change_1000*1000 - change_500*500 - change_100*100 - change_50*50)//10

    if change_50000 > 0 :
        print("50,000x%d"% change_50000, end = "")
    if change_10000 > 0 :
        print(", 10,000x%d"% change_10000, end = "")
    if change_5000 > 0 :
        print(", 5,000x%d"% change_5000, end = "")
    if change_1000 > 0 :
        print(", 1,000x%d"% change_1000, end = "")
    if change_500 > 0 :
        print(", 500x%d"% change_500, end = "")
    if change_100 > 0 :
        print(", 100x%d"% change_100, end = "")
    if change_50 > 0 :
        print(", 50x%d"% change_50, end = "")
    if change_10 > 0 :
        print(", 10x%d"% change_10, end = "")

  • 수 *
  • 2019-03-29 (01:34)
헉 ㅠㅠ 직접 코드까지 남겨주시고.. 정말 감사합니다!!