Factorial은 양의 정수 n과 그 이전의 모든 양의 정수, 즉 n!의 곱을 나타내는 수학의 일반적인 개념입니다. 컴퓨터 프로그래밍에서 계승은 통계 순열 및 조합과 같은 계산 문제에 자주 사용되는 일반적인 알고리즘이기도 합니다.
이 글에서는 Go 언어를 사용하여 반복 및 재귀를 포함한 계승 알고리즘을 구현하는 방법을 소개합니다.
반복은 이전 결과를 기반으로 계산할 때마다 알고리즘을 반복적으로 실행하는 것을 의미합니다. 계승을 구현하기 위해 반복 방법을 사용하면 1부터 시작하여 n까지 곱하기만 하면 됩니다.
다음은 Go 언어를 사용한 계승 구현을 위한 반복 알고리즘 코드입니다.
func factorialIterative(n int) int { result := 1 for i := 1; i <= n; i++ { result *= i } return result }
이 함수에서는 결과 변수를 사용하여 계산된 곱을 저장하고 1부터 n까지 1씩 곱한 후 최종 결과를 반환합니다.
재귀는 함수가 자신을 호출하고 특정 조건에 도달할 때까지 중지되지 않음을 의미합니다. 재귀를 사용하여 계승을 구현하는 것도 매우 쉽습니다. 문제를 더 작은 하위 문제로 나누고 기본 사례에 도달할 때까지 계속 반복하면 됩니다.
다음은 Go 언어를 사용하여 계승을 구현하는 재귀 알고리즘 코드입니다.
func factorialRecursive(n int) int { if n <= 1 { return 1 } else { return n * factorialRecursive(n-1) } }
이 함수에서는 먼저 n이 1보다 작거나 같은지 확인하고, 그렇다면 1을 반환합니다. 그렇지 않으면 n에 이 함수의 반환 값을 곱하여 n이 1인 경우로 되돌아갑니다. factorialRecursive(n-1)
func benchmarkFactorial(b *testing.B, f func(int) int) { for i := 0; i < b.N; i++ { f(20) } } func BenchmarkFactorialIterative(b *testing.B) { benchmarkFactorial(b, factorialIterative) } func BenchmarkFactorialRecursive(b *testing.B) { benchmarkFactorial(b, factorialRecursive) }
위 내용은 Golang은 계승을 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!