일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 풀이&소스코드저작권:왕유승
- 참조은요양병원
- Linux
- 알고리즘
- if문
- c언어
- 리눅스 명령어
- DBMS
- 수학영재원
- 독서 감상문
- 프로그래밍
- 문제출저:www.dovelet.com
- C++
- IT
- 독후감
- For문
- 정보과학
- API
- 배열
- 리눅스
- 자료구조
- 제어문
- C
- 다중반복문
- 반복문
- 영재교육원
- 정보영재원
- 백도어
- 정보올림피아드
- Backdoor
Archives
- Today
- Total
되는대로 살자
[C언어 기출문제&풀이] 정보올림피아드 본문
다음은 어떤 프로그램의 일부이다. 이 부분을 실행시킨 후 m의 값은?
a[1]=1;
for(i=2;i<=100;i++)
a[i]=a[i/2] + 1;
풀이
i값의 변화 = 1 2 3 4 5 ...
[i/2]값의 변화 = 0 1 1 2 2 3 3 4 4 5 5 6 6 ... -> i를 2로 나누므로 i가 2의 배수일 때 증가
a[i]값의 변화 = 1 2 2 3 3 3 3 4 4 4 4 4 4 4 4 5 5 5 ... -> i의 제곱수 마다 1 증가 (왜인지는 모르겠음 나중에 추가)
그러므로
a[1] = 1;
a[2],a[3] = 2;
a[4]~ a[7] = 3; ( 여기서 '~'는 문법이 아닙니다. )
a[8]~ a[15] = 4;
a[16]~a[31] = 5;
a[32]~a[63] = 6;
a[64]~a[127] = 7;
따라서 a[100] = 7;
'2009~2014 > C/C++' 카테고리의 다른 글
[C언어 기출문제&풀이] 정보올림피아드 (0) | 2010.11.01 |
---|---|
[C언어 기출문제&풀이] 정보올림피아드 (0) | 2010.11.01 |
[C언어 기출문제&풀이] 정보올림피아드 (0) | 2010.11.01 |
[C언어 기출문제&풀이] 정보올림피아드 (0) | 2010.11.01 |
[C언어 기출문제&풀이] 완전수 (0) | 2010.07.15 |