P4994 终于结束的起点
解题思路
几个要点 :
一、 不能用数组,可能会爆;
二、 由于数可能溢出,每次加之后要对M取模,我习惯叫它对于M的特征值。
这个和码蹄集有一题有点像,不过那题是找规律题
#include<iostream>
using namespace std;
int main()
{
int m;
cin>>m;
long long a1 = 1,a2 = 1,c = 0 , d = 0;
for(int i = 3 ; ; i ++)
{
c = (a1 + a2) % m ;
d = (a2 + c) % m;
a1 = c ;
a2 = d;
// cout<<c<<" "<<d<<endl;
if( (c % m == 0 && d % m == 1) )
{
cout<< 2 * (i-1) - 1 <<endl;
break;
}
if((d % m == 0 && (c + d) % m == 1))
{
cout<<2 * (i - 1);
break;
}
}
return 0;
}

浙公网安备 33010602011771号