왼쪽부터 저장된 이진 숫자 배열을 십진수로 바꾸는 코드다. 누적값을 두 배 한 뒤 현재 비트를 더하도록 ①과 ②를 완성하고 최종 출력 ③을 쓰시오.
#include <stdio.h>
int main(void) {
int bits[] = {1, 1, 0, 1, 0, 1};
int value = 0;
for (int i = 0; i < 6; i++) {
value = value * ① + ②;
}
printf("%d", value);
return 0;
}모범답안
① 2, ② bits[i], ③ 53
풀이와 판단 근거
왼쪽에서 새 비트를 읽을 때 기존 누적값을 2배 하고 현재 비트를 더하면 이진 자릿값이 한 자리씩 반영된다. 값은 0→1→3→6→13→26→53으로 변한다.
따라서 ①은 2, ②는 현재 원소 `bits[i]`, 최종 출력은 53이다. 십진 자릿수 분리 연산이 없어 `% 10` 같은 대체식은 이 코드에 맞지 않는다.
자주 틀리는 지점
- 누적값을 10배 해 이진 배열을 십진 표기 110101로 합침
- 항상 bits[0]만 더해 현재 인덱스를 반영하지 않음
- 오른쪽 첫 원소부터 2의 0승을 곱하는 방식으로 계산함
자동 판정 방식
한글·영문 동의어와 문항별 필수 개념을 확인하며, 정답 단어가 부정되거나 반대 개념과 함께 쓰이면 자동 정답으로 확정하지 않습니다. 부분점수는 ITPASSLAB의 학습용 예상 점수입니다.