Unit 17
17.5 연습 문제 ▶ 다음 소스 코드를 완성하여 정수 2 5, 4 4, 8 3, 16 2, 32 1이 각 줄에 출력되게 만드세요.
while에 조건식은 두 개 지정하고, 두 변수를 모두 변화시켜야 합니다.
# 결과
# 2 5
# 4 4
# 8 3
# 16 2
# 32 1
# i = 2
# j = 5
# _____ or ______
# print(i, j)
# _____
# 정답
i = 2
j = 5
while i <= 32 or j >= 1:
print(i, j)
i *= 2
j -= 1
while 반복문은 조건식이 참(True)이면 반복할 코드와 변화식을 함께 수행합니다.
거짓(False)이면 반복문을 끝낸 뒤 다음 코드를 실행합니다.
i는 32까지 출력하고, j는 1까지 출력해야 하므로 while에 조건식을 i <= 32 or j >= 1과 같이 지정합니다.
i는 값이 2부터 32까지 두 배씩 커지고 j는 값이 5부터 1까지 1씩 작아지기때문에
반복문 안에서는 i *= 2, j -= 1로 만듭니다.
17.6 실습 문제 ▶ 표준 입력으로 금액(정수)이 입력됩니다.
1회당 요금은 1,350원이고, 교통카드를 사용했을 때마다의 잔액을 각 줄에 출력하는 프로그램을 만드세요
(input에서 안내 문자열은 출력하지 않아야 합니다). 단, 최초 금액은 출력하지 않아야 합니다.
그리고 잔액은 음수가 될 수 없으며 잔액이 부족하면 출력을 끝냅니다.
# 입력 : 10000
# 결과 : 8650 7300 5950 4600 3250 1900 550
x = int(input())
while x >= 1350 :
x -= 1350
print(x)
교통카드를 사용할 수 있는 최소 잔액은 1,350원이므로 조건식은 x >= 1350으로 지정하여
1,350원 이하일 경우 while 문을 빠져나가도록 만듭니다.
그때까지 계속해서 요금이 나가도록 1회 요금을 차감한 뒤 print로 x의 값을 출력합니다.
참조 : https://dojang.io/course/view.php?id=7
'python' 카테고리의 다른 글
Unit 19 문제 풀이 (0) | 2022.01.15 |
---|---|
Unit 18 문제 풀이 (0) | 2022.01.15 |
Unit 16 문제 풀이 (0) | 2022.01.15 |
Unit 15 문제 풀이 (0) | 2022.01.15 |
Unit 14 문제 풀이 (0) | 2022.01.15 |