首页 > 学院 > 开发设计 > 正文

删数问题

2019-11-11 01:49:21
字体:
来源:转载
供稿:网友

PRoblem Description

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

Input

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

Output

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

Example Input

178543  4

Example Output

13

Hint

 

Author

他强任他强,我吃我三狼。

说实话,这题做的头皮发麻。

01#include<stdio.h>
02#include<string.h>
03int main()
04{
05    int i, s, len, n;
06    char a[100];
07    while(scanf("%s", a) != EOF)
08    {
09        n = 0;
10        scanf("%d", &s);
11        while(s > 0)
12        {
13            i = 0;
14            len = strlen(a);
15            while(i < len && a[i] <= a[i+1])
16                i++;
17            while(i < len)
18            {
19                a[i] = a[i+1];
20                i++;
21            }
22            s--;
23        }
24        len = strlen(a);
25        while((a[n] == '0') && (n < len)) n++;
26        if(n == len)
27            printf("0/n");
28        else
29        {
30            for(i = n; i < strlen(a); i++)
31            {
32                printf("%c", a[i]);
33            }
34            printf("/n");
35        }
36    }
37    return 0;
38}


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表