任务描述
本关任务:键盘输入一个高精度的正整数 n,去掉其中任意 s 个数字后剩下的数字按原左右次序将组成一个新的正整数。
编程对给定的 n 和 s,寻找一种方案使得剩下的数字组成的新数最小。
编程要求
请在右侧编辑器Begin-End
处补充代码,完成本关任务。
测试说明
平台会对你编写的代码进行测试,比对你输出的数值与实际正确数值,只有所有数据全部计算正确才能通过测试:
测试输入:
231183 //正整数n
3 //去掉3(s)个数字
预期输出:113
#include <bits/stdc++.h>
using namespace std;
int main() {
/********* Begin *******/
int k;
string s;
cin >> s >> k;
if (k > s.size()) {
cout << "Invalid Input.";
}
while (k) {
int i;
for (i = 0; i < s.size() - 1 && s[i] <= s[i + 1]; i++);
s.erase(i, 1);
k--;
}
if (s.empty()) {
cout << 0 << endl;
}
int i = 0;
for (i = 0; i < s.size()-1;) {
if (s[i] == '0') i++;
else break;
}
cout << s.substr(i);
return 0;
/********* End ********/
}