Unit 20
20.7 연습 문제 ▶ 다음 소스 코드를 완성하여 1부터 100까지의 숫자를 출력하면서 2의 배수일 때는 'Fizz',
11의 배수일 때는 'Buzz', 2과 11의 공배수일 때는 'FizzBuzz'가 출력되게 만드세요.
# for i in range(1, 101):
# if ________:
# print('FizzBuzz')
# elif ________:
# print('Fizz')
# elif ________:
# print('Buzz')
# else:
# print(i)
# 정답
for i in range(1, 101):
if i % 2 == 0 and i % 11 == 0:
print('FizzBuzz')
elif i % 2 == 0:
print('Fizz')
elif i % 11 == 0:
print('Buzz')
else:
print(i)
2의 배수는 i를 2로 나눴을 때 0이 나오면 되므로 i % 2 == 0
11의 배수는 i를 11로 나눴을 때 0이 나오면 되므로 i % 11 == 0
2와 11의 공배수는 i % 2 == 0 and i % 7 == 0과 같이 논리 연산자 and로 구해도 되고,
2와 11의 최소공배수인 22를 직접 사용하여 i % 22 == 0와 같이 구해도 됩니다.
공배수일 때 'Fizz'나 'Buzz'가 출력되지 않도록 항상 공배수 처리를 먼저 해줍니다.
20.8 실습 문제 ▶ 표준 입력으로 정수 두 개가 입력됩니다
(첫 번째 입력 값의 범위는 1~1000, 두 번째 입력 값의 범위는 10~1000이며
첫 번째 입력 값은 두 번째 입력 값보다 항상 작습니다).
첫 번째 정수부터 두 번째 정수까지 숫자를 출력하면서 5의 배수일 때는 'Fizz', 7의 배수일 때는 'Buzz',
5와 7의 공배수일 때는 'FizzBuzz'를 출력하는 프로그램을 만드세요
(input에서 안내 문자열은 출력하지 않아야 합니다).
start, stop = map(int, input().split())
for i in range(start, stop + 1):
if i % 5 == 0 and i % 7 == 0:
print('FizzBuzz')
elif i % 5 == 0:
print('Fizz')
elif i % 7 == 0:
print('Buzz')
else:
print(i)
첫 번째 정수에서 두 번째 정수까지 숫자를 출력하려면
for i in range(start, stop + 1):와 같이 반복문을 작성하면 됩니다.
5의 배수는 i를 5로 나눴을 때 0이 나오면 되므로 i % 5 == 0
7의 배수는 i를 7로 나눴을 때 0이 나오면 되므로 i % 7 == 0
5와 7의 공배수는 i % 5 == 0 and i % 7 == 0과 같이 논리 연산자 and로 구해도 되고,
5와 7의 최소공배수인 35를 직접 사용하여 i % 35 == 0와 같이 구해도 됩니다.
참조 : https://dojang.io/course/view.php?id=7
'python' 카테고리의 다른 글
2. 기초 - 입출력 (코드업 기초 100제) (0) | 2022.01.23 |
---|---|
1. 기초 - 출력 (코드업 기초 100제) (0) | 2022.01.23 |
Unit 19 문제 풀이 (0) | 2022.01.15 |
Unit 18 문제 풀이 (0) | 2022.01.15 |
Unit 17 문제 풀이 (0) | 2022.01.15 |