코딩테스트 풀이/프로그래머스
프로그래머스 - 피보나치
Essense
2020. 1. 21. 23:48
728x90
풀이과정)
일반적인 재귀를 이용하면 스택오버가 발생하므로 꼬리재귀 함수를 이용해야 한다.
사용언어 : Kotlin
풀이)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
class Solution {
tailrec fun fibNum(n: Int, a: Int, b: Int): Int {
if (n==1)
return b
else if (n==0)
return a
return if((a+b)/1234567>=1) fibNum(n-1, b, (a+b)%1234567) else fibNum(n-1, b, a+b)
}
fun solution(n: Int): Int {
return fibNum(n, 0, 1)
}
}
|
cs |
출처 : https://programmers.co.kr/learn/courses/30/lessons/12945
728x90