3245. 找数
#include<bits/stdc++.h>
using namespace std;
int main(){
int T,caseNum=0;
cin>>T;
while(T--){
string s;
cin>>s;
int len=s.length(),flag=0;
for(int i=0;i<len-1;++i){
while(s[i]>s[i+1]){
s[i]=s[i]-1;
for(int j=i+1;j<len;++j)
s[j]='9';
if(i>0)--i;
flag=1;
}
if(flag==1)break;
}
printf("case #%d:\n",caseNum++);
cout<<s.substr(s.find('0')+1)<<endl;
}
return 0;
}
#include<bits/stdc++.h>
using namespace std;
int main(){
int T,caseNum=0;
cin>>T;
while(T--){
string s;
cin>>s;
s='0'+s;
int len=s.length(),flag=0;
for(int i=0;i<len-1;++i){
if(s[i]>s[i+1]){
for(int j=i;j>0;j--){
if(s[j]-1>=s[j-1]){
s[j]=s[j]-1;
for(int k=j+1;k<len;++k)
s[k]='9';
break;
}
}
flag=1;
break;
}
if(flag==1)break;
}
printf("case #%d:\n",caseNum++);
cout<<s.substr(s.find_first_not_of('0'))<<endl;
}
return 0;
}
|