题目描述
LeavingZ 想知道对于两个整数 x , y x,y x,y,在区间 [ y − x , y ] [y-x,y] [y−x,y] 中数字末尾 9 的个数最多的整数是谁。如果有多个末尾 9 的数量相同的整数,他想要最大的那一个。
输入格式
一行两个整数 y , x y,x y,x 。
输出格式
一个整数,表示区间内最大的,末尾 9 的个数最多的数字。
代码
#include <bits/stdc++.h>
using namespace std;
long long th[18];
int main()
{
th[0] = 1;
for (int i = 1; i <= 18; i++)
th[i] = th[i - 1] * 10;
long long x, y;
cin >> y >> x;
x = y -x;
// 枚举最后9个数
for (int i = 17; i >= 0; i--)
{
long long cur = (y / th[i]) * th[i] - 1;
if (cur + th[i] <= y)
cur += th[i];
if (cur >= x)
{
cout << cur;
return 0;
}
}
cout << y;
return 0;
}