洛谷 P4994 终于结束的起点
题目链接:https://www.luogu.com.cn/problem/P4994
这个题其实难度还行,但需要注意几个点:
1.long long int 范围太小,斐波那契长得太快,可能到就是多项的时候就超出范围了,所以我们应该每次都取模。
2.不能用数组去存,范围太大,内存不够,只存三项就可以。
代码如下:
#include<iostream> using namespace std; int main() { int M; cin >> M; long long int a, b, c; a = 0, b = 1; long long int i = 3; while (1) { c = (a + b)%M; if (c == 0) { if ((c + b) % M==1) { cout << i-1 ; break; } } a = b; b = c; i++; } //cout << f[19999]<<endl; return 0; }