#include<cstring>
#include<cstdio>
using namespace std;
char s[50];
int len;
signed main()
{
int T;
scanf ("%d", &T);
while (T--)
{
scanf ("%s", s);
len = strlen(s);
bool flag = 0, flag2 = 1;//flag用来标记有没有不是9的;flag2则是标记后面有无非0数字
for (int i = 0;i < len; i++)
{
if (flag)
break;
if (s[i] != '9')
{
for (int j = i + 1;j < len; j++)
{
if (s[j] != '0')//如果有非零就标为0
flag2 = 0;
if (j == len - 1)//如果是最后一个字符,该位就转换成 1
s[j] = '1';
else
s[j] = '0';
}
if (!flag2 || i == len - 1)//如果有非零或者i是最后一个,就要加1;
s[i]++;
flag = 1;
}
}
if (!flag)//如果全部都是9,那么就输出10000···000,其中0的个数和9一样
{
printf("1");
for (int i = 1;i <= len; i++)
printf("0");
puts("");
continue;
}
s[0]--;
for (int i = len - 1;i >= 0; i--)//直接输出即可
printf ("%c", s[i]);
puts("");
}
return 0;
}
标签:int,++,len,P8431,flag,flag2
From: https://www.cnblogs.com/Assassins-Creed/p/18018392