uva 305 Pseudo-Random Numbers

来源:互联网 发布:淘宝大号一年能刷几单 编辑:程序博客网 时间:2024/06/01 10:08

随机数算法

刚开始做这道题的时候没想到这么简单    以为循环会很大  标记的做法会超时    可是谁知道呢  这道题的测试数据很弱     居然不会超时 

而且居然乘法不会溢出   

#include<cstdio>#include<cstring>int  visit[1000000];int main(){    #ifdef LOCAL    freopen("in.txt","r",stdin);    #endif // LOCAL    int Z, I, M, L;    int T = 1;    while(scanf("%d%d%d%d",&Z,&I,&M,&L))    {        if(Z == 0&&I ==0&&M ==0&&L ==0)break;        int t = 0;        int flag =0;        visit[0] = L;        int x;        while(flag == 0)        {            t++;            visit[t] = (Z*visit[t-1]+I)%M;//这居然不会溢出 估计测试数据很弱吧            for(int i =0; i < t; i++)                if(visit[i] == visit[t]){x = i;flag = 1;break;}        }        printf("Case %d: %d\n",T++,t-x);    }    return 0;}


原创粉丝点击