알고리즘/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

'알고리즘 > BOJ' 카테고리의 다른 글

[BOJ] 17136. 색종이 붙이기  (0) 2022.02.15
[BOJ] 16137. 견우와 직녀  (0) 2022.02.10
[BOJ] 2042. 구간 합 구하기  (0) 2022.02.08
[BOJ] 17837. 새로운 게임 2  (0) 2022.02.07
[BOJ] 3197. 백조의 호수  (0) 2022.02.06