UVA 350 - Pseudo-Random Numbers(水)
寻找以前出现过的数字。。。不要和培训老师一样,用循环。。。
PS:这个题好搞啊,编错了两个地方,居然过了样例,然后就AC了。。。误打误撞。。。
1 #include <stdio.h> 2 #include <string.h> 3 int p[1000000]; 4 int main() 5 { 6 int z,i,m,l,j,num,a = 0; 7 while(scanf("%d%d%d%d",&z,&i,&m,&l)!=EOF) 8 { 9 memset(p,0,sizeof(p)); 10 if(!z&&!i&&!m&&!l)break; 11 a ++; 12 num = 0; 13 for(;;) 14 { 15 j = (z*l+i)%m; 16 if(p[j]) 17 break; 18 else 19 { 20 p[j] = 1; 21 } 22 l = j; 23 num ++; 24 } 25 printf("Case %d: ",a); 26 printf("%d\n",num); 27 } 28 return 0; 29 }