您的位置:首页 > 其它

删数问题

2017-04-19 17:41 113 查看


Problem Description

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


Input

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


Output

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


Example Input

178543  4



Example Output

13

#include<stdio.h>
#include<string.h>
int main()
{
    int s;
    char a[101];
    while(~scanf("%s %d", a, &s))
    {
        int i, n;
        while(s>0)
        {
            n = strlen(a);
            i = 0;
            while(i<n&&a[i]<=a[i+1])//注意是小于等于
            {
                i++;
            }
            while(i<n)
            {
                a[i] = a[i+1];
                i++;
            }
            s--;
        }
        n = strlen(a);
        while(n>1&&a[0]=='0')//对于零的处理
        {
            i = 0;
            while(i<n)
            {
                a[i] = a[i+1];
                i++;
            }
            n--;
        }
        printf("%s\n", a);
    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  贪心 删数问题