题目:点击打开链接
分析:题目要求均匀产生随机数,有两种方法:1 对产生的数进行标记 2 要产生随机数STEP和MOD的最大公约数不能超过1
代码一:
#include<stdio.h> #include<string.h> int a1[100010]; int main() { int STEP,MOD; while(~scanf("%d%d",&STEP,&MOD)) { int i; int k=0; memset(a1,0,sizeof(a1)); for(i=1;i<=MOD-1;i++) { k=(k+STEP)%MOD; if(a1[k]) break; a1[k]++; } if(i!=MOD) printf("%10d%10d Bad Choice\n",STEP,MOD); else printf("%10d%10d Good Choice\n",STEP,MOD); printf("\n"); } return 0; }
代码二:
#include<stdio.h> int main() { int s,m; while(~scanf("%d%d",&s,&m)) { int i,k=0; for(i=1;i<=m;i++) { if(s%i==0&&m%i==0&i>1) k=1; } if(k) printf("%10d%10d Bad Choice\n",s,m); else printf("%10d%10d Good Choice\n",s,m); printf("\n"); } return 0; }
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-12-28 15:55:41