9/05/2011

What is a Recursive Call? and Make Fibonacci sequence function using Function of the Recursive Call type.

Recursive call is that this method call oneself.
Specially, Function uses this method.
Below C Source is example for recursive call function.
As you see, Function RF called the RF that is name of oneself.

Now I give you one question.
Please make Fibonacci sequence function using recursive call method.

You can see Fibonacci condition <here>

The LINUX that is name of OS is also recursive call type.
Some people said " LINUX is abbreviation of LINUX is not UNIX. "
Here, LINUX is call LINUX is not UNIX. In this sentence, LINUX is call LINUX is not UNIX again..
so..like that

(((((LINUX is not UNIX) is not UNIX) is not UNIX) is not UNIX) is not UNIX) is not UNIX

This case sink into the infinity roof because there is not escape condition. so we have to be careful when we use recursive call.

<English is very difficult.. Plz someone correct my poor sentence.>

재귀호출이란 자기가 자기자신을 호출하는 방식을 말한다.
특히 함수에서 이런 일을 한다.
이런 재귀호출 함수가 필요한 경우는
어떤 일을 하는 함수가 여러가지 조건에 대하여 똑같은 일을 할 필요가 있을 때이다.
그런데 다시 여러가지 조건이 주어지고 또다시 같은 일을 해야할 때 재귀 호출 함수를 쓴다.
이건 말로 표현하기 무척 어렵다.. ㅎㅎ

한가지 예제를 보자

----------------------------------------------

int RF(int A);

void main()
{
printf("%d\n", RF(5) );
}


int RF(int A)
{
int B=0;
if(A>1)
{
B = RF(A-1);
}

return A+B;
}

------------------------------------------------

RF함수는 1에서 입력된 숫자까지 더하는 함수이다.
RF함수를 보면 본문안에 다시 자기 자신을 호출하는 것을 볼 수 있다.
이런 방법을 재귀호출이라고 한다.

여기서 문제가 나갑니다.
이런 재귀호출 방식을 이용하여 피보나치 수열의 값을 구하는 함수를 구현해 보시오.
이번에는 좀 어려울 걸.. ㅋㅋ


이런 것도 재귀 호출일까?
LINUX 라는 운영체제가 있다.
그런데 이것은 LINUX is not UNIX의 약자라고 한다. 그런데 여기서 LINUX는 다시 LINUX is no UNIX를 만든다.

따라서 ..
(((((LINUX is not UNIX) is not UNIX) is not UNIX) is not UNIX) is not UNIX) is not UNIX

LINUX is not UNIX에서 LINUX가 계속 LINUX is not UNIX를 생성해 낸다..
이렇듯 재귀호출은 조건 문으로 break를 잘 해주지 않으면 무한 루프에 빠지기 쉽다..