键盘输入一个高精度的正整数n(≤100位),去掉其中任意s个数字后剩下的数字按照原来的左右次序组成一个新的正整数。
编程对给定的n与s,寻找一种方案,使得剩下的数字组成的新数最小。
输入格式:
输入两个数字,分别为原始数n,要去掉的数字数s (s < n);
输出格式:
输出去掉s个数后最小的数。
输入样例:
178543 4
输出样例:
13
#include<stdio.h>
#include<string.h>
int main()
{
int n,i,k,j,t;
char a[101];
scanf("%s%d",a,&n);
for(k=0;k<n;k++)
{
t=strlen(a);
i=0;
while(a[i]<=a[i+1]&&i<t)//当后一个数比前一个数小时,终止循环
i++;
while(i<t)//当后一个数比前一个数小时,用后一个数代替前一个数,后面的数依次往前移
{
a[i]=a[i+1];
i++;
}
}
t=strlen(a);
i=0;
while(i<t-1&&a[i]=='0')//当前面的数都为0时,i++,将位置移到后面不为0的数
{
i++;
}
for(;i<t;i++)//从前面i的位置开始输出
printf("%c",a[i]);
}