본문 바로가기

정보올림피아드지역예선

정보올림피아드 초등 - 지역예선] 2009년도 25번문제

반응형

 

 

 

문제풀이)

이진수를 십진수로 변환하는 공식은 다음과 같다.

n개의 이진수가 111...1 이 있는 경우 십진수의 값은 1 * 2(n-1승) + 1 * 2(n-2승)... + 1 * 2(0승) 이다.

이것을 프로그램 로직으로 변경 하면 바로 앞의 데이터 * 2 + 현재값 을 하면 된다.

따라서 위의 변수처럼 나타낸다면 빈칸에는 다음과 같이 들어가진다.

v = v * 2 + 현재값

여기서 현재값은 s[i] 에 속하는데 s는 char 타입이므로 문자 '0' 은 0x30 값으로 실제로는 48 의 값이며 '1'은 0x31 의 값으로 실제로 49의 값을 갖는다.

따라서 문자열 '1' 의 값을 숫자 1로 인식하기 위해서는 s[i] - '0' 이 되어야 숫자 1의 값을 얻을 수 있다.

 

정답) 1번

반응형