7-2 删数问题
分数 20
切换布局
键盘输入一个高精度的正整数n(≤100位),去掉其中任意s个数字后剩下的数字按照原来的左右次序组成一个新的正整数。
编程对给定的n与s,寻找一种方案,使得剩下的数字组成的新数最小。
输入格式:
输入两个数字,分别为原始数n,要去掉的数字数s (s < n);
输出格式:
输出去掉s个数后最小的数。
输入样例:
178543 4
输出样例:
13
#include<bits/stdc++.h>
using namespace std;
int main()
{
string s;
int n;
cin >> s >> n;
while(n--){
for(int i = 0;i < s.size(); i++){
if(s[i] > s[i+1]){
s.erase(i,1); // 每次删除第一个下降的数字
break;
}
}
}
int i=0;
while (i<s.size()-1&&s[i]=='0') { // 删除修改后的前导零
s.erase(i,1);
}
cout << s << endl;
return 0;
}