如下代码,当我键入的T,a,b,m为1 1 3 5时,输出的a,b,m却为1 0 3 ,这是为什么?为什么我的b,m的值会改变?
#include <iostream>
#include <algorithm>
using namespace std;
int main(){
int T;
cin>>T;
for(int i=0;i<T;i++){
int a=0,b=0,m=0;
int sn[]={0};
sn[0]=0;
cin>>a>>b>>m;
int fs=1;
for(int j=1;j<m;j++){
sn[j]=(a*sn[j-1]+b) % m;
}
cout<<a<<" "<<b<<" "<<m<<endl;
sort(sn,sn+sizeof(sn)/sizeof(sn[0]));
for(int j=0;j<m;j++){
if(sn[j]==fs) fs++;
}
cout<<fs<<endl;
}
return 0;
}