#include<bits/stdc++.h>
using namespace std;
int main(){
char a[100005];
long long i=0,x=0;
cin>>a;
while(a[0]!='9'){
i=0;
while(i<strlen(a)){
if(a[i]=='9'){
if(i==0){
x=1;
}
else{
a[i]=48;
}
}
else{
a[i]++;
}
if(x==1){
break;
}
i++;
}
}
i=1;
while(i<strlen(a)){
if(a[i]!='9'){
a[i]++;
break;
}
i++;
}
cout<<a;
return 0;
}
大概就是:
可以无数次将所有数位+1(比如1234变成2345这样的)
只能有一次将其中一个数位+1(比如1234变成2234这样的)
加的时候遇到9就变成0
求怎么变可以变出最大的数
输入的数小于10的100000次方,我用的char数组,感觉没问题,但是50分,极端数据测试过,不会超时(时限1.00s)
求hack