用一个vector s存第一行输入,然后从s[0]开始(即最高位),从数字9开始删。每删一个数k--。如果删完所有9,k还有剩余,那么继续删8,7,6,以此类推。
代码
#include <bits/stdc++.h>
using namespace std;
string n;
vector <char> s;
long long k;
void solve(int w){
char x=char(w);
for(int i=0;i<s.size()&&k>0;i++){
if (s[i]!=x){
s.push_back(n[i]);//不删
}else k--;//删
}
while(k>0){
solve(w--);//删下一个数字
}
}
int main(){
cin>>n;
for(int i=0;i<n.length();i++){
s.push_back(n[i]);
}
cin>>k;
solve(9);
for(int i=0;i<s.size();i++){
cout<<s[i];
}
}