프로그래머스 - 피보나치 수
part51. 피보나치 수
js ver 1.0
function trampoline(fn) {
return function (...args) {
let result = fn(...args);
while (typeof result === 'function') {
result = result();
}
return result;
};
}
const fibonacci = trampoline(function fib(n, a = 0, b = 1) {
if (n === 0) return a;
if (n === 1) return b;
return () => fib(n - 1, b, (a + b) % 1234567);
});
function solution(n) {
return fibonacci(n);
}