注意:
题目中只规定了甲乙的能力值为正整数,但丙的能力值是除出来的,不一定为整数,所以要使用double型
ac代码:
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef pair<int, int> PII;
int m, x, y;
int myreverse(int x)
{
int a = x % 10;
int b = x / 10;
return a * 10 + b;
}
string compete(double x, int m) // double!!!!!!!!!!!
{
if (x > m)
return "Cong";
else if (x == m)
return "Ping";
else
return "Gai";
}
int main()
{
cin >> m >> x >> y;
// int jia = 0, yi = 0, bin = 0;
bool flag = false;
for (int i = 99; i >= 10; i--)
{
// i为甲的能力
int j = myreverse(i); // j为乙的能力
// for (int k = 1; k <= 99; k++) // k为丙的能力
{
double k = abs(i - j)*1.0/ x; // double!!!!!!!!!!!
if (j == y * k)
{
flag = true;
cout << i << ' ';
cout << compete(i, m) << ' ';
cout << compete(j, m) << ' ';
cout << compete(k, m) << endl;
return 0;
}
}
}
if (!flag)
cout << "No Solution" << endl;
return 0;
}
参考链接:(21条消息) 1088 三人行 (20分) (附测试点4分析)-PAT乙级真题-C++实现_最爱种太阳的博客-CSDN博客