피보나치 수열 : 어떤 수열의 항이, 앞의 두 항의 합과 같은 수열
→ 0 , 1 , 1 , 2 , 3 , 5 , 8 , 13 , 21 , 34 …..
만약 5번째의 수열의 값을 구하고 싶다 하면 피보나치를 5번 수행한 값을 구하고 싶다는 것과 같다.
f(5) 이고 n은 점진적으로 5 , 4 , 3 , 2 , 1 이 되어야 피보나치를 5번수행한다.
총 3개의 변수가 필요하다.
코틀린으로 구현하면 다음과 같다.
tailrec fun fibonacci(n: Int, a: Int = 0, b: Int = 1): Int {
return when (n) {
0 -> a
1 -> b
else -> fibonacci(n - 1, b, a + b)
}
/**
n 은 1씩 줄어든다.
a 는 이전 결과값 b 를 받는다.
b 는 이전 결과값 (a) + 현재 결과값 (b) 를 한다.
*/
}