AcWing 3478. 旧帐单
原题链接
简单
作者:
NFYD
,
2022-09-03 17:02:32
,
所有人可见
,
阅读 228
#include <iostream>
using namespace std;
bool check(int x, int y, int z, int i) // 判断中间三位数字是否相同
{
int z1 = i / 10 % 10; // z
i /= 10;
int y1 = i / 10 % 10; // y
i /= 10;
int x1 = i / 10 % 10; // x
i /= 10;
if (z1 == z && y1 == y && x1 == x) return true;
return false;
}
int main()
{
int n;
while (cin >> n)
{
int x, y, z;
cin >> x >> y >> z;
int l = 10000 / n, r = 99999 / n; // 单价的左右边界
bool flag = true;
// 从大到小枚举单价,第一个符合条件的就是答案
for (int i = r; i >= l; i -- )
{
int sum = i * n;
if (check(x, y, z, sum))
{
flag = false;
cout << sum / 10000 << ' ' << sum % 10 << ' ' << i << endl;
break;
}
}
if (flag) puts("0");
}
return 0;
}