백준 2749번 피보나치 수 3
< 백준 2749번 피보나치 수 3 - 마포 코딩박 >
사용한 알고리즘: 수학 (피사노 주기)
피보나치 수를 K 로 나눈 나머지는 일정한 주기를 갖습니다. 이를 피사노 주기라고 합니다.
문제에서는 피보나치 수를 1000000로 나눈 나머지를 구하라 하였으므로 이 또한 피사노 주기를 갖습니다.
저는 이 피사노 주기를 구해 문제를 해결하였습니다.
문제풀이는 다음과 같습니다.
(1) (코드: 20~34)
MOD = 1000000 라 할 때 주기를 찾습니다.
처음 시작이 0번째 피보나치수 = 0, 1번째 피보나치수 = 1 이므로
사용한 알고리즘: 수학 (피사노 주기)
피보나치 수를 K 로 나눈 나머지는 일정한 주기를 갖습니다. 이를 피사노 주기라고 합니다.
문제에서는 피보나치 수를 1000000로 나눈 나머지를 구하라 하였으므로 이 또한 피사노 주기를 갖습니다.
저는 이 피사노 주기를 구해 문제를 해결하였습니다.
문제풀이는 다음과 같습니다.
(1) (코드: 20~34)
MOD = 1000000 라 할 때 주기를 찾습니다.
처음 시작이 0번째 피보나치수 = 0, 1번째 피보나치수 = 1 이므로
k번째%MOD = 0 , k+1번째%MOD = 1 이 되면, 주기가 발생합니다.
왜냐하면 이후 k+2번째%MOD = k번째%MOD + k+1번째%MOD = 0+1 = 1 ,
왜냐하면 이후 k+2번째%MOD = k번째%MOD + k+1번째%MOD = 0+1 = 1 ,
댓글
댓글 쓰기
긴 글 읽어주셔서 감사합니다.
궁금한게 있으시다면 댓글 달아주세요!