Hamutaro
코테 좀 해라★彡/C++

피보나치 수

요미 ★ 2024. 4. 2.

코드를 이렇게 짯는데 테스트 7부터 실패로 뜬다.. 해결 방법을 몰라서 질문하기 통해서 봤는데..

애초에 n이 담길 수 있는 범위가 한정적이여서 오버플로우가 되면 이상한 값이 들어간다고한다.

 

따라서, 값을 넣어줄 때 부터 1234567의 나머지를 넣어주면 된다.

 

#include <string>
#include <vector>
#include <iostream>

using namespace std;

int solution(int n) {
    int answer = 0;
    vector<int> array;
    array.resize(n + 1);
    
    array[0] = 0;
    array[1] = 1;
    
    for(int i = 2; i <= n; i++)
    {
        array[i] = (array[i-2] + array[i-1]) % 1234567;
    }
    
    answer = array[n] % 1234567;
    
    return answer;
}

'코테 좀 해라★彡 > C++' 카테고리의 다른 글

짝지어 제거하기  (0) 2024.04.02
다음 큰 숫자  (1) 2024.04.01
숫자의 표현  (0) 2024.04.01
이진 변환 반복하기  (1) 2024.03.28
올바른 괄호  (1) 2024.03.28

댓글