解题代码
#include<iostream>
#include<algorithm>
using namespace std;
int M, X, Y;
void print(double x) {
if (M == x) cout << " Ping";
else if (M < x) cout << " Cong";
else cout << " Gai";
}
int main() {
int a, b;
double c;
cin >> M >> X >> Y;
for (a = 99; a >= 10; a--) {
b = (a % 10) * 10 + a / 10;
c = 1.0 * abs(a - b) / X;
if (b == c * Y) break;
}
if (a == 9) cout << "No Solution" << endl;
else {
cout << a;
print((double)a); print((double)b); print(c);
}
return 0;
}
测试结果
问题整理
1.这道题没有一个比较好的数学简化方法,从99到10进行枚举即可。