题意:l-r中,取位数上数字差最大的数字
思路:如果一个数字中出现90,那么直接输入,所以循环节为100,则当r-l>100时,令r=l+100,然后暴力求解。
代码:
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define ld long double
void solve() {
int ans = -99;
int res;
int l, r; cin >> l >> r;
if (l == r) {
cout << r << endl; return;
}
if (r- l > 100) {
r = l + 100;
}
for (int i = l; i <= r; i++) {
int temp = i;
int mm = 100; int mx = -99;
while (temp) {
mm = min(mm, temp % 10);
mx = max(mx, temp % 10);
temp /= 10;
}
if (mx - mm >= ans) {
ans = mx - mm;
res = i;
}
}
cout << res << endl;
return;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
int t; cin >> t;
while (t--) {
solve();
}
return 0;
}