Problem Description
输入一个高精度的正整数N,去掉其中任意S个数字后剩下的数字按原左右次序组成一个新的正整数。编程对给定的N和S,寻找一种方案使得剩下的数字组成的新数最小。
输出新的正整数。(N不超过240位)输入数据均不需判错。
输出新的正整数。(N不超过240位)输入数据均不需判错。
Input
输入有多组数据,每组数据为n和s。
Output
对于每组数据输出最后剩下的最小数。
Sample Input
175438
4
Sample Output
13
Author
代码:
#include<stdio.h>
#include<string.h>
char a[250];
int l;
void del(int i)// 删除当前位置(i)的 值
{
int j;
for(j=i;j<l;j++)
a[j]=a[j+1];
l--;
}
int main()
{
int s,i;
while(scanf("%s",a)!=EOF)
{
scanf("%d",&s);
l=strlen(a);// 获取当前数的长度
while(s>0)
{
for(i=0;i<l-1;i++)if(a[i]>a[i+1])break;// 从前往后找,找大于后一个数的位置,然后删除它的值
del(i);
s--;
}
while(l>1&&a[0]=='0')del(0);// 保证首位不为零
puts(a);
}
return 0;
}