코딩테스트-피보나치 수

728x90
반응형

이번 코딩테스트는 피보나치 수 

 

아..근데 문제가 좀 이상하다 .

 

 

2이상의 n번째 피보나치 수를 1234567으로 나눈 나머지를 리턴하라고 해서 아래와같이 작성했더니 테스트 7번부터 실패로 나오기 시작한다. 

 

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>

int solution(int n) {
    int answer = n%1234567;
    int F1 = 0;
    int F2 = 1;
    
    
    for(int i = 1; i < n; i++)  {
        answer = F1+F2;
        F1 = F2;
        F2 = answer;
    }
    return answer % 1234567;
}

 

for문으로 피보나치 수를 구한다음 for문을 빠져나오면 answer에 n 번째 피보나치 수가 있기 때문에 1234567로 나눈 나머지 값을 리턴하면 답이 맞다고 생각했는데,

 

이렇게 하면 계속 실패라고 나와서 피보나치 수를 answer에 담을 때 1234567로 나눈 나머지 값을 넣어보니 통과됬다. 

 

아 이건 문제가 좀 이상한거 아닌가 ?

 

뭐 아무튼 아래 코드로 클리어 

 

 

 

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>

int solution(int n) {
    int answer = n%1234567;
    int F1 = 0;
    int F2 = 1;
    
    
    for(int i = 1; i < n; i++)  {
        answer = (F1+F2) % 1234567;
        F1 = F2;
        F2 = answer;
    }
    return answer;
}

 

 

어이없다.

 

- 끝 -

728x90
반응형