删数问题

Description

 键盘输入一个高精度的正整数n(≤100位),去掉其中任意s个数字后剩下的数字按照原来的左右次序组成一个新的正整数。编程对给定的n与s,寻找一种方案,使得剩下的数字组成的新数最小。

Input

  输入有多组 每组包括原始数n,要去掉的数字数s;

Output

 输出去掉s个数后最小的数

Sample

Input 

178543  4

Output 

13
 1 #include<stdio.h>
 2 int main()
 3 {
 4     char a[1000];
 5     int s,i;
 6     while(~scanf("%s%d",a,&s))//多组输入
 7     {
 8         while(s--)//依次删除s个数,每次都把两个中大的删除
 9         {
10             i = 0;
11             while(a[i]<=a[i+1])//两两比较,为了留下两个数中较小的放在开头,注意等号很重要,只有后面大才要删除
12                 i++;//如果后一个小于前一个就把前面的删除
13             while(a[i]!='\0')//删除,并把后面的补上来
14             {
15                 a[i] = a[i+1];
16                 i++;
17             }
18         }
19         i = 0;
20         while(a[i] == '0' && a[i]!='\0')//如果都是0的话,不是的话就算了
21           i++;//找到最后一个0
22         puts(a+i);//输出
23     }
24     return 0;
25 }

 

posted @ 2020-06-16 00:00  爱写程序的机械师  阅读(93)  评论(0)    收藏  举报