-
[2749] 피보나치 수 3BOJ 2021. 12. 19. 13:28
https://www.acmicpc.net/problem/2749
2749번: 피보나치 수 3
첫째 줄에 n이 주어진다. n은 1,000,000,000,000,000,000보다 작거나 같은 자연수이다.
www.acmicpc.net
<문제>
피보나치 수를 1'000'000으로 나눈 나머지는 1'500'000의 주기를 갖는다.(피사노 주기)
이에따라 1'500'000번의 반복으로 n번째 피보나치 수를 구할 수 있겠다.
<소스코드>
12345678910111213141516171819202122232425262728#include <bits/stdc++.h>using namespace std;using ll = long long;const int M = 1000000;ll n;int x = 1, y = 1, sum;int main(void) {ios_base::sync_with_stdio(0);cin.tie(0);cin >> n;n %= 1500000;if (n == 0) {cout << 0;return 0;}if (n == 1) {cout << 1;return 0;}for (int i = 0; i < n - 2; i++) {sum = x + y;if (sum > M) sum -= M;x = y;y = sum;}cout << y;return 0;}cs 'BOJ' 카테고리의 다른 글
[10610] 30 (0) 2021.12.24 [1525] 퍼즐 (0) 2021.12.22 [10826] 피보나치 수 4 (0) 2021.12.18 [6543] 그래프의 싱크 (0) 2021.12.17 [1292] 쉽게 푸는 문제 (0) 2021.12.15