题意
通过将两位数相加来替换位数来改变数字的大小,问能改出来的最大数字是多少
代码+注解
//相邻两数相加大于10,但每个数会变小要从后往前遍历
//相邻两数相加小于10,但每个数会变大要
//所以能用第一种情况就用第一种,不能的话操作前两个数即可
#include<bits/stdc++.h>
using namespace std;
int n, m, t;
void dn(string s)
{
int len = s.size();
for(int i = len - 1; i > 0; i --)
{
int now = (s[i] - '0') + (s[i - 1] - '0');
if(now >= 10)
{
s[i] = now % 10 + '0';
s[i - 1] = now / 10 + '0';
cout << s << endl;
return;
}
}
int ans = (s[0] - '0') + (s[1] - '0');
cout << ans;
for(int i = 2; i < len; i ++)
cout << s[i];
puts("");
}
int main()
{
cin >> t;
while(t --)
{
string s;
cin >> s;
dn(s);
}
return 0;
}