A - 删数问题
Description
键盘输入一个高精度的正整数n(≤100位),去掉其中任意s个数字后剩下的数字按照原来的左右次序组成一个新的正整数。编程对给定的n与s,寻找一种方案,使得剩下的数字组成的新数最小。
Input
输入两个数字,分别为原始数n,要去掉的数字数s (s < n)。
Output
输出去掉s个数后最小的数
Sample
Input
178543 4
Output
13
#include <bits/stdc++.h>
using namespace std;
int main ()
{
string s;
int k;
cin >>s >>k;
int l = s.size();
while (k --)
{
for (int i = 0; i < l - 1; i ++)
{
if (s[i] > s[i + 1])
{
for (int j = i; j < l - 1; j ++)
{
s[j] = s[j + 1];
}
break;
}
}
l --;
}
int flag = 0;
for (int i = 0; i < l; i ++)
{
if (s[i]!= '0') cout <<s[i],flag = 1;
else if (flag) cout <<s[i];
}
if (flag == 0) cout <<0;
return 0;
}