2 이상의 n이 입력되었을 때, n번째 피보나치 수를 1234567으로 나눈 나머지를 리턴하는 함수, solution을 완성해 주세요.
JavaScript
// solution 1 : BigInt 이용
function solution(n) {
fibo = [0n, 1n];
while (fibo.length <= n) {
fibo.push(fibo[fibo.length-2] + fibo[fibo.length-1]);
}
return fibo[n] % 1234567n;
}
n
을 붙이거나(10n) 함수 BigInt()
를 호출해 생성// solution 2 : (A + B) % p = ((A % p) + (B % p)) % p 이용
function solution(n) {
fibo_remainder = [0, 1];
// (A + B) % p = ((A % p) + (B % p)) % p
while (fibo_remainder.length <= n) {
fibo_remainder.push((fibo_remainder[fibo_remainder.length-2] + fibo_remainder[fibo_remainder.length-1]) % 1234567);
}
return fibo_remainder[n];
}
Python
def solution(n):
fibo = [0, 1]
while (len(fibo) <= n):
fibo.append(fibo[len(fibo) - 2] + fibo[len(fibo) - 1])
return fibo[n] % 1234567