작성일 : 15-03-20 13:07
2014년 정올 예선문제 중고등부 문제 28번...문의
 글쓴이 : 이미화(gulala)
조회 : 3,907  

#include
void f(int x) //2
{
 if (x==0) return ;  //3
    f(x/2);             //4
 printf("%d",x%2);  //5

}
int main()
{
 f(10);   //1
 printf(" ");
 f(7);
 printf("\n");
 return 0;
}


실행시 순서가 //1 -> //2 -> //3 -> //4 -> //2 -> //3 -> //4 -> ....

이런식으로 돌아가지 않나여?  답은 1010  1111  이라고 하는데....

//5행은 언제 만나나요?

풀이좀 부탁드립니다.



컴스쿨 15-03-20 16:14
 
재귀함수입니다.

처음에 f(10)을 호출하면 f(5)를 호출하고 대기합니다. (4번 실행)
f(5)는 f(2)를 호출하고 대기합니다. (4번 실행)
f(2)는 f(1)를 호출하고 대기합니다. (4번 실행)
f(1)는 f(0)를 호출하고 대기합니다. (4번 실행)
f(0)은 아무 작업도 하지 않고 return 합니다. (3번 실행)
대기하고 있던 f(1)로 돌아오면 1을 출력하고 돌아갑니다. (5번 실행)
대기하고 있던 f(2)로 돌아오면 0을 출력하고 돌아갑니다. (5번 실행)
대기하고 있던 f(5)로 돌아오면 1을 출력하고 돌아갑니다. (5번 실행)
대기하고 있던 f(10)으로 돌아오면 0을 출력하고 메인으로 돌아갑니다. (5번 실행)

그래서 1010이 출력되는 것입니다.
같은 방법으로 F(7)을 호출하면 111이 출력됩니다.

이 문제는 십진수를 호출하면 이진수로 출력하는 재귀함수입니다.
 
 

Total 618
번호 제   목 글쓴이 날짜 조회
318 배열2 자가진단6 (1) 김주영 03-29 3398
317 2014년 예선 정보올림피아드 25번 풀이 (1) 이수연 03-28 2485
316 정보올림피아드 2014년예상기출문제34번 (1) 유양숙 03-27 6115
315 동영상 재생이되지 않습니다. (1) 왕수진 03-24 2259
314 2014년 초등 기출문제 31번 (1) 김유미 03-24 2128
313 잘 모르겠습니다. (4) 김연수 03-22 2031
312 반복제어문3 형성평가2 (1) 김주영 03-21 3054
311 이건 무슨 오류인가요? (2) 김연경 03-20 2979
310 2014년 정올 예선문제 중고등부 문제 28번...문의 (1) 이미화 03-20 3908
309 2014년 지역본선 문제2. 자리배정 문제 (3) 김연경 03-18 2477
308 정보올림피아드 예상기출문제31번 (1) 유양숙 03-18 9662
307 문자열2. 형성평가 3번, 형성평가 6번 무엇이 잘못되었는지? (1) 김연경 03-17 3066
306 자기주도 C언어 프로그래밍 일련번호 오류! (2) 최훈오 03-15 2177
305 문자열2, 자가진단 7번 (1) 김연경 03-14 3008
304 왜죠? (1) 황성진 03-14 1975
303 강의 다시 듣기 (1) 최정화 03-14 1881
302 자기주도 전자책 일련번호 (2) 최의택 03-13 2161
301 143: 반복제어문3 - 형성평가4 (4) 최의택 03-13 3577
300 우분투로 코드블록을 깔았는데 실행을 어떻게 하죠? (1) 유지안 03-12 2213
299 강의 들어가니 재생이 안되고 이상한 영어가 뜹니다. (1) 유지안 03-12 2071
 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    

회사소개 | 개인정보처리방침 | 이용약관 | 찾아오시는 길 | 이메일주소 무단수집거부 | 사업자정보확인
경기도 안양시 동안구 호계동 1065-10 협성골드프라자 601호 한컴에듀케이션(주) TEL : 031-388-8840 FAX : 031-388-0996
대표자 : 김동규 사업자번호 : 130-86-02870 통신판매업신고번호 : 제 2010-경기안양-888호
COPYTIGHT(C) 한컴에듀케이션(주), ALL RIGHT RESERVED.
담은강좌 : 0