本题较为简单,计算出MOD个结果后,将其排序,然后一一对照即可。
#include <iostream>
#include <algorithm>
#include <iomanip>
using namespace std;
int main()
{
int STEP, MOD;
while (cin >> STEP >> MOD)
{
bool flag = true;
int seed[100005];
seed[0] = 0;
for (int i = 1; i < MOD; i++)
{
seed[i] = (seed[i - 1] + STEP) % MOD;
}
sort(seed, seed + MOD); //对seed[0]至seed[MOD-1]排序
for (int i = 0; i < MOD; i++)
{
if (seed[i] != i)
flag = false;
}
if (flag)
cout << setw(10) << STEP << setw(10) << MOD << " Good Choice" << endl << endl;
else
cout << setw(10) << STEP << setw(10) << MOD << " Bad Choice" << endl << endl;
}
return 0;
}
继续加油。