题意:给出L,Z,I,M四个数,不断执行L=(L*Z+I)%M.最终L会循环,求周期
暴力模拟即可
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
int random[10001];
int Z,I,M,L;
int counter=1;
while(cin>>Z>>I>>M>>L&&M)
{
memset(random,0,sizeof(random));
Z%=M;
I%=M;
L%=M;
int result=0;
L=(Z*L+I)%M;
while(!random[L])
{
result++;
random[L]=1;
L=(Z*L+I)%M;
}
cout<<"Case "<<counter++<<": "<<result<<endl;
}
return 0;
}