프로그래밍의 기초(의사 코드 트레이스)
÷는 나눗셈이며, 정수형 변수(인수 포함)에 대입할 때는 소수점 이하를 버린다. 다음 함수 f를 f(9087)로 호출했을 때의 반환값은?
○integer: f(integer: x)
integer: s ← 0
while (x > 0)
s ← s + x mod 10
x ← x ÷ 10
endwhile
return s
- A4
- B15
- C24
정답과 해설 보기
정답: C. 24
x mod 10은 x의 일의 자리를 꺼내고, x ← x ÷ 10은 소수점 이하를 버리는 정수 나눗셈이 되므로 일의 자리를 제거합니다. mod는 +보다 우선순위가 높으므로 s ← s + x mod 10은 s ← s + (x mod 10)의 의미입니다. x는 9087, 908, 90, 9, 0으로 바뀌고, s에는 7, 8, 0, 9가 차례로 더해져 7 + 8 + 0 + 9 = 24가 됩니다. 각 자리 숫자의 합을 구하는 함수입니다.