재귀 (컴퓨터 과학)

자신을 정의할 때 자기 자신을 재참조하는 방법

컴퓨터 과학에 있어서 재귀(再歸, recursion)는 자신을 정의할 때 자기 자신을 재참조하는 방법을 뜻하며, 이를 프로그래밍에 적용한 재귀 호출(recursive call)의 형태로 많이 사용된다. 또 사진이나 그림 등에서 재귀의 형태를 사용하는 경우도 있다.

화면 녹화 프로그램에서의 재귀. 화면 속에 작은 화면이 무한히 들어간다.

예시 편집

계승 편집

계승을 구하는 법은 재귀가 가장 많이 이용되는 예의 하나이다. 예컨대, C로 계승을 구하는 방법은 다음 코드와 같다.

C 편집

 unsigned int factorial(unsigned int n)
 {
     if (n <= 1)
         return 1;
     else
         return n * factorial(n-1);
 }

스칼라 편집

  def factorial(n: Int): Int = if (n <= 1) 1 else n * factorial(n-1)

이 코드에서는 함수의 값을 반환할 때 그 자신에 n-1의 인자를 넘겨 다시 호출하는 재귀를 사용하고 있다.

같이 보기 편집