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 }
posted @ 2012-07-14 20:19  Naix_x  阅读(163)  评论(0)    收藏  举报