피보나치 수 자바스크립트

HyosikPark·2020년 11월 27일
0

알고리즘

목록 보기
46/72
function solution(n) {
    let a = 0;
    let b = 1;
    let c = a + b;
    let times = 0;
    while(times != n-2) {
        a = b;
        b = c;
        c= (a + b) % 1234567
        times++
    }
    return c 
}

피보나치수를 먼저 구한 뒤에 1234567을 나누게 되면 굉장히 큰 숫자가 나오게 되어 테스트를 통과할 수 없다.
(a+b) % c = ((a%c) + (b%c)) %c 의 성질을 이용하여 피보나치수가 나올 때마다 나머지를 반환하면 BigInt를 피해가면서 값을 도출해낼 수 있다.

0개의 댓글