1. 순환의 개념과 기본 예제 1
무한루프에 빠지지 않으려면
base case : 적어도 1개의 recursion에 빠지지 않는 경우가 존재해야 함
recursive case: recursion을 반복하다보면 결국 base case로 수렴해야함
순환함수와 수학적 귀납법
정리: func(int n)은 음이 아닌 정수 n에 대해서 0~n까지의 합을 올바로 계산
n=0이라면, 0을 반환한다. 올바르다.
임의의 양의 정수 k에 대해
n<k
인 경우 0~n까지의 합을 올바르게 계산하여 반환한다고 가정하자.n=k 인 경우,
func는 먼저 func(k-1)을 호출하는데 2번의 가정에 의해 0~k-1까지의 합이 올바로 계산되어 반환
메서드 func는 그 값에 n을 더해서 반환
따라서 메서드 func는 0~k 까지의 합을 올바로 계산하여 반환
Factorial: n!
recursion의 흔한 예시
x^n
fibonacci
최대공약수: Euclid method
m>=n 인 두 양의 정수 m과 n에 대해서 m이 n의 배수이면 gcd(m,n)=n이고, 그렇지 않으면 gcd(m,n)=gcd(n,m%n)이다.
간단하게
Last updated
Was this helpful?