티스토리 뷰

Python

[py] 20. FizzBuzz 문제

JH_ 2022. 1. 16. 14:33

FizzBuzz는 간단한 프로그래밍 문제이며 규칙은 다음과 같다.

  1. 1에서 100까지 출력
  2. 3의 배수는 Fizz 출력
  3. 5의 배수는 Buzz 출력
  4. 3과 5의 공배수는 FizzBuzz 출력

 

20.1 1에서 100까지 출력

for i in range(1, 101):
	print(i)

20.2 3의 배수는 Fizz 출력, 5의 배수는 Buzz 출력

for i in range(1, 101):
	if i % 3 == 0:
		print('Fizz')
	elif i % 5 == 0:
		print('Buzz')
	else:
		print(i)

20.3 3과 5의 공배수는 FizzBuzz 출력

for i in range(1, 101):
	if i % 3 == 0 and i % 5 == 0:
    	print('FizzBuzz')
	elif i % 3 == 0:
		print('Fizz')
	elif i % 5 == 0:
		print('Buzz')
	else:
		print(i)

20.5 코드 단축하기

for i in range(1, 101):
    print('Fizz' * (i % 3 == 0) + 'Buzz' * (i % 5 == 0) or i)

괄호 안의 조건이 맞을 경우 True이므로 Fizz는 출력된다. 

조건이 맞지 않을 경우 False이므로 Buzz가 출력된다.

둘다 맞지 않을 경우 변수가 출력된다.

 

20.8 심사문제: 5와 7의 배수, 공배수 처리하기

x, y = map(int, input().split())
for i in range(x, y+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)

입력한 숫자의 범위이므로 마지막 숫자에 +1을 해준다.

배수, 공배수를 찾는 조건을 적는데, 배수의 조건을 먼저 입력하면 공배수를 찾지않고 반복이 끝나기 때문에 공배수의 조건을 먼저 적어야 한다.

'Python' 카테고리의 다른 글

[py] 19. 계단식으로 별 출력하기  (0) 2022.01.16
[py] 18. break, continue  (0) 2022.01.16
[py] 17. while 반복문  (0) 2022.01.16
[py] 16. for 반복문  (0) 2022.01.16
[py] 15. elif  (0) 2022.01.16
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday