표준 입력으로 정수 두 개가 입력됩니다(첫 번째 입력 값의 범위는 1~1000, 두 번째 입력 값의 범위는 10~1000이며 첫 번째 입력 값은
두 번째 입력 값보다 항상 작습니다). 첫 번째 정수부터 두 번째 정수까지 숫자를 출력하면서 5의 배수일 때는 "Fizz", 11의 배수일 때는 "Buzz", 5와 11의 공배수일 때는 "FizzBuzz"를 출력하는 프로그램을 만드세요(scanf 함수 호출 전에 문자열을 출력하면 안 됩니다).
표준 입력
50 60
표준 출력
Fizz
51
52
53
54
FizzBuzz
56
57
58
59
Fizz
정답
#include <stdio.h>
int main()
{
int num1, num2;
scanf("%d %d", &num1, &num2);
for (int i=num1;i<=num2;i++)
{
if (i % 55 == 0)
printf("FizzBuzz\n");
else if (i % 5 == 0)
printf("Fizz\n");
else if (i % 11 == 0)
printf("Buzz\n");
else
printf("%d\n", i);
}
return 0;
}
풀이
먼저, 5와 11의 최소공배수인 55를 만드는 코드 두 개가 있다. 논리 연산자 &&를 이용하여 i % 5 == 0 && i % 11 == 0과 5와 11의
최소공배수 55인 i % 55 == 0를 이용하는 두 가지 방법이 있다. 55의 배수는 FizzBuzz를 출력하게 하고, 55의 배수가 아니고
5의 배수일 때는 Fizz, 11의 배수일 때는 Buzz를 출력하게 한다.
'C' 카테고리의 다른 글
[C] C언어 코딩 도장 35.7 심사문제: 두 정수의 합 구하기 (0) | 2022.04.27 |
---|---|
[C] C언어 코딩 도장 34.10 심사문제: 포인터와 주소 연산자 사용하기 (0) | 2022.04.27 |
[C] C언어 코딩 도장 32.6 심사문제: 중첩 루프 빠져나오기 (0) | 2022.04.27 |
[C] C언어 코딩 도장 31.7 심사문제: 산 모양으로 별 출력하기 (0) | 2022.04.27 |
[C] C언어 코딩 도장 30.7 심사문제: 두 수 사이의 숫자 중 7로 끝나지 않는 숫자 출력하기 (0) | 2022.04.27 |