换个口味
这是一道看似唬人,但实际上很简单的题目
我原本看半天,结果一看题解说暴力能过,那还说啥了
斐波那契数列都会算吧,记得用记忆化,记忆进去的值记得对m取模,不然int的范围不够
AC代码
#include <cstring>
#include <iostream>
using namespace std;
const int N = 1e7;
int dp[N], m;
int f(int x) {if (dp[x] != -1)return dp[x];return dp[x] = (f(x - 1) + f(x - 2)) % m;
}
int main() {cin >> m;memset(dp, -1, sizeof(dp));dp[0] = 0;dp[1] = 1;for (int i = 2;; i++) {if (f(i) % m == 1 && f(i - 1) % m == 0) {cout << i - 1;break;}}return 0;
}
