题目描述
输入格式
输入一行一个正整数 M。
输出格式
输出一行一个正整数 n。
输入输出样例
代码实现
直接暴力破解,但是需要注意:
- 为了避免计算结果过大,可以采用模运算%M;
- 为了防止数组过大,只需要记录当前计算的那一项c和前两项a,b(滚动存储)。
#include <bits/stdc++.h>
using namespace std;
int main() {
int a, b, c;
int M;
cin >> M;
a = 0, b = 1;
for (int i = 2;; i++) {
c = (a + b) % M;
if (c == 1 && b == 0) {
cout << i - 1;
break;
}
a = b;
b = c;
}
return 0;
}