From e676c04e15bad4c2e083c8761a4d115653675591 Mon Sep 17 00:00:00 2001 From: Ren Baoshuo Date: Mon, 21 Sep 2020 19:48:40 +0800 Subject: [PATCH] =?UTF-8?q?P4994=20=E7=BB=88=E4=BA=8E=E7=BB=93=E6=9D=9F?= =?UTF-8?q?=E7=9A=84=E8=B5=B7=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit R38706118 --- problem/P4994/P4994.cpp | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 problem/P4994/P4994.cpp diff --git a/problem/P4994/P4994.cpp b/problem/P4994/P4994.cpp new file mode 100644 index 00000000..330dfc99 --- /dev/null +++ b/problem/P4994/P4994.cpp @@ -0,0 +1,37 @@ +// R38706118 + +#include + +using namespace std; + +long long a[10000000]; + +long long dfib(long long x, long long m) { + if (a[x] != -1) { + return a[x]; + } + if (x == 0) { + a[x] = 0 % m; + return 0; + } + if (x == 1) { + a[x] = 1 % m; + return 1; + } + a[x] = (dfib(x - 1, m) + dfib(x - 2, m)) % m; + return a[x]; +} + +int main() { + long long m; + memset(a, 0xff, sizeof(a)); + cin >> m; + for (int i = 2; i < m * m; i++) { + // cout << i << ' ' << dfib(i, m) << endl; + if (dfib(i, m) == 0 && dfib(i + 1, m) == 1) { + cout << i; + break; + } + } + return 0; +}