1. 문제
상품 가격을 입력하고 지불금액을 입력하면 거스름돈 출력.
2. 사용함수
.isdigit() : 숫자면 True, 아니면 False
flag = True -> break를 하지않는 이상 영원히 반복
3. 실행
price = input('상품가격 입력:')
if price.isdigit():
money = input('지불금액 입력:')
if money.isdigit():
restMoney = (int(money) - int(price))//10 * 10
print('거스름돈:', restMoney, "(원단위 절사)")
flag = True
cnt50000 = 0
cnt10000 = 0
cnt5000 = 0
cnt1000 = 0
cnt500 = 0
cnt100 = 0
cnt50 = 0
cnt10 = 0
while flag:
if restMoney >= 50000:
restMoney = restMoney - 50000
cnt50000 += 1
elif restMoney >= 10000:
restMoney = restMoney - 10000
cnt10000 += 1
elif restMoney > 5000:
restMoney = restMoney - 5000
cnt5000 += 1
elif restMoney >= 1000:
restMoney = restMoney - 1000
cnt1000 += 1
elif restMoney >= 500:
restMoney = restMoney - 500
cnt500 += 1
elif restMoney >= 100:
restMoney = restMoney - 100
cnt100 += 1
elif restMoney >= 50:
restMoney = restMoney - 50
cnt50 += 1
elif restMoney >= 10:
restMoney = restMoney - 10
cnt10 += 1
else:
break
print("-" * 30)
print("50,000 {}장".format(cnt50000))
print("10,000 {}장".format(cnt10000))
print("5,000 {}장".format(cnt5000))
print("1,000 {}장".format(cnt1000))
print("500 {}개".format(cnt500))
print("100 {}개".format(cnt100))
print("10 {}개".format(cnt10))
print("-" * 30)
else:
print('잘못입력했습니다.')
else:
print('잘못입력했습니다.')
4. 결과물
상품가격 입력:20000
지불금액 입력:124500
거스름돈: 104500 (원단위 절사)
------------------------------
50,000 2장
10,000 0장
5,000 0장
1,000 4장
500 1개
100 0개
10 0개
------------------------------
cf. 몫과 나머지로 더 간단하게 나타낼 수도 있다.
price = input('상품 가격 입력:')
cnt50000 = 0
cnt10000 = 0
cnt5000 = 0
cnt1000 = 0
cnt500 = 0
cnt100 = 0
cnt50 = 0
cnt10 = 0
if price.isdigit():
paidMoney = input('지불 금액:')
if paidMoney.isdigit() and int(paidMoney) >= int(price):
changeMoney = int(paidMoney) - int(price)
changeMoney = (changeMoney // 10)*10
print('거스름돈: {}(원단위절사)'.format(changeMoney))
if changeMoney >= 50000:
cnt50000 = changeMoney // 50000
changeMoney = changeMoney % 50000
if changeMoney >= 10000:
cnt10000 = changeMoney // 10000
changeMoney = changeMoney % 10000
if changeMoney >= 5000:
cnt5000 = changeMoney // 5000
changeMoney = changeMoney % 5000
if changeMoney >= 1000:
cnt1000 = changeMoney // 1000
changeMoney = changeMoney % 1000
if changeMoney >= 500:
cnt500 = changeMoney // 500
changeMoney = changeMoney % 500
if changeMoney >= 100:
cnt100 = changeMoney // 100
changeMoney = changeMoney % 100
if changeMoney >= 50:
cnt50 = changeMoney // 50
changeMoney = changeMoney % 50
if changeMoney >= 10:
cnt10 = changeMoney // 10
changeMoney = changeMoney % 10
print('-'*30)
print('50,000 {}장'.format(cnt50000))
print('10,000 {}장'.format(cnt10000))
print('5,000 {}장'.format(cnt5000))
print('1,000 {}장'.format(cnt1000))
print('500 {}개'.format(cnt500))
print('100 {}개'.format(cnt100))
print('50 {}개'.format(cnt50))
print('10 {}개'.format(cnt10))
print('-'*30)
else:
print('금액이 부족합니다')
else:
print('잘못 입력하였습니다.')
'Coding test > Python 기초문제' 카테고리의 다른 글
[for 반복문] 합, 짝수합, 홀수합, 팩토리얼 구하기 (0) | 2022.04.27 |
---|---|
[%, // 연산자] 빵과 우유 배분하기 (0) | 2022.04.17 |
[for 반복문] 복리 계산기 (0) | 2022.04.17 |
[if/elif 조건문] 성적표 출력하기 (1) | 2022.04.16 |
[if~else 조건문] 100살 계산기 (0) | 2022.04.16 |