이동-재귀

재귀는 유사한 방식으로 항목을 반복하는 프로세스입니다. 프로그래밍 언어에도 동일한 개념이 적용됩니다. 프로그램이 동일한 함수 내에서 함수를 호출 할 수있는 경우이를 재귀 함수 호출이라고합니다. 다음 예를 살펴보십시오-

func recursion() {
   recursion() /* function calls itself */
}
func main() {
   recursion()
}

Go 프로그래밍 언어는 재귀를 지원합니다. 즉, 함수가 자신을 호출 할 수 있습니다. 그러나 재귀를 사용하는 동안 프로그래머는 함수에서 종료 조건을 정의하는 데주의해야합니다. 그렇지 않으면 계속해서 무한 루프가됩니다.

Go에서의 재귀 예제

재귀 함수는 숫자의 계승 계산, 피보나치 시리즈 생성 등과 같은 많은 수학적 문제를 해결하는 데 매우 유용합니다.

예제 1 : Go에서 재귀를 사용하여 팩토리얼 계산

다음 예제는 재귀 함수를 사용하여 주어진 숫자의 계승을 계산합니다-

package main

import "fmt"

func factorial(i int)int {
   if(i <= 1) {
      return 1
   }
   return i * factorial(i - 1)
}
func main() { 
   var i int = 15
   fmt.Printf("Factorial of %d is %d", i, factorial(i))
}

위의 코드가 컴파일되고 실행되면 다음과 같은 결과가 생성됩니다.

Factorial of 15 is 1307674368000

예제 2 : Go에서 재귀를 사용하는 피보나치 시리즈

다음 예제는 재귀 함수를 사용하여 주어진 숫자의 피보나치 시리즈를 생성하는 방법을 보여줍니다.

package main

import "fmt"

func fibonaci(i int) (ret int) {
   if i == 0 {
      return 0
   }
   if i == 1 {
      return 1
   }
   return fibonaci(i-1) + fibonaci(i-2)
}
func main() {
   var i int
   for i = 0; i < 10; i++ {
      fmt.Printf("%d ", fibonaci(i))
   }
}

위의 코드가 컴파일되고 실행되면 다음과 같은 결과가 생성됩니다.

0 1 1 2 3 5 8 13 21 34