해결된 질문
작성
·
192
0
f(4)일 때
int f(int n)
{
printf('%d',n);
if(n==0)
return 0;
else if (n==1)
return 1
else
return (f(n-1) + f(n+2);
}
print 되는 숫자가 4,3,2,1,0,1,2,1,0 이라고 나와있습니다.
왜 n의 값이 저렇게 프린트 되는지 잘 이해가 되지 않습니다.
답변 1
2
#include <stdio.h>
int f(int n, int parent)
{
if( parent != 0){
printf("f(%d)-->", parent);
printf("f(%d)\n",n);
}
if(n==0)
return 0;
else if (n==1)
return 1;
else
return (f(n-1,n) + f(n-2,n));
}
int main(void) {
f(4,0);
return 0;
}
결과
f(4)-->f(3) f(3)-->f(2) f(2)-->f(1) f(2)-->f(0) f(3)-->f(1) f(4)-->f(2) f(2)-->f(1) f(2)-->f(0)
관련해서 추가로 재귀함수와 함수 스택에 대해서 찾아보시면 좋을 듯 합니다.