알고리즘/BOJ

[BOJ] 2749. 피보나치 수 3

재담 2022. 2. 9. 22:29

문제 원본 : https://www.acmicpc.net/problem/2749

 

2749번: 피보나치 수 3

첫째 줄에 n이 주어진다. n은 1,000,000,000,000,000,000보다 작거나 같은 자연수이다.

www.acmicpc.net

#include<iostream>

using namespace std;

long long n[1500000];

int main()
{
	n[0] = 0, n[1] = 1;
	for (int i = 2; i < 1500000; i++)
	{
		n[i] = n[i - 1] + n[i - 2];
		n[i] %= 1000000;
	}

	long long a;
	cin >> a;
	cout << n[a % 1500000] << '\n';
}
  • n의 범위가 매우 크므로 일반적인 방법으로는 불가능
  • 피사노 주기를 이용해서 해결 가능
  • 피사노 주기 참고 : https://comyoung.tistory.com/236