题目链接 : HDU1014 - Uniform Generator
思路
根据题意,易知要使生成一个均匀的数列,只要保证
step
和
mod
互质即可,所以只要验证
gcd(step, mod)
是不是为
1
。
为什么互质就可以满足要求呢,我是这样理解的。
要生成均匀的数列,那么
代码
#include <cstdio>
using namespace std;
int gcd(int a, int b)
{
return b == 0 ? a : gcd(b, a%b);
}
int main()
{
int a, b;
while(scanf("%d%d", &a, &b) == 2)
{
printf("%10d%10d", a, b);
if(gcd(a, b) == 1) printf(" Good Choice\n\n");
else printf(" Bad Choice\n\n");
}
return 0;
}