23-2다음은 금액 m을 5000원권·1000원권·100원 동전·10원… | 2023년 정보처리기사실기 2회차 기출문제 상세 페이지
4
23-2
다음은 금액 m을 5000원권·1000원권·100원 동전·10원 동전으로 거슬러 줄 때 각각의 개수를 구하는 C 프로그램이다. a~d는 차례로 5000원·1000원·100원·10원의 개수이다. 아래 실행 결과가 나오도록 빈칸 ①~④에 들어갈 식을 [보기]의 문자·숫자·기호로 작성하시오.
[보기] m / % ( ) 0~9
#include <stdio.h>
int main(void) {
int m = 8760;
int a, b, c, d;
a = ___①___;
b = ___②___;
c = ___③___;
d = ___④___;
printf("5000원 %d장\n", a);
printf("1000원 %d장\n", b);
printf("100원 %d개\n", c);
printf("10원 %d개\n", d);
return 0;
}[실행 결과]
5000원 1장
1000원 3장
100원 7개
10원 6개해설
① m/5000
② m%5000/1000
③ m%1000/100
④ m%100/10
[해설]
큰 단위부터 몫으로 개수를 구하고, 나머지(%)로 이미 거슬러 준 몫을 떼어 낸 뒤 다음 단위로 나눈다.
- ① 8760/5000 = 1
- ② 8760%5000 = 3760 → 3760/1000 = 3
- ③ 8760%1000 = 760 → 760/100 = 7
- ④ 8760%100 = 60 → 60/10 = 6
%와 /는 우선순위가 같아 왼쪽부터 계산되므로 괄호를 넣은 (m%5000)/1000도 같은 값이다. m/1000%5, m/100%10, m/10%10처럼 몫을 먼저 구하고 나머지를 취하는 식도 결과가 같아 정답으로 인정된다.
내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.