반응형
|
문제풀이)
이진수를 십진수로 변환하는 공식은 다음과 같다.
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번
반응형
'정보올림피아드지역예선' 카테고리의 다른 글
정보올림피아드 초등 - 지역예선] 2009년도 27- 28번문제 (0) | 2013.09.25 |
---|---|
정보올림피아드 초등 - 지역예선] 2009년도 26번문제 (0) | 2013.09.25 |
정보올림피아드 초등 - 지역예선] 2009년도 24번문제 (0) | 2013.09.24 |
정보올림피아드 초등 - 지역예선] 2009년도 22-23번문제 (0) | 2013.09.23 |
정보올림피아드 초등 - 지역예선] 2009년도 21번문제 (0) | 2013.09.23 |