删数问题
Time Limit: 1000MS
Memory Limit: 65536KB
Submit
Statistic
Problem Description
键盘输入一个高精度的正整数n(≤100位),去掉其中任意s个数字后剩下的数字按照原来的左右次序组成一个新的正整数。编程对给定的n与s,寻找一种方案,使得剩下的数字组成的新数最小。
Input
输入有多组 每组包括原始数n,要去掉的数字数s;
Output
输出去掉s个数后最小的数
Example Input
178543 4
Example Output
13
01 | #include <stdio.h> |
02 | #include <string.h> |
03 |
04 | int main() |
05 | { |
06 | int i, s, lenth; |
07 | char a[101]; |
08 | while ( scanf ( "%s %d" , a, &s)!=EOF) |
09 | { |
10 | while (s>0) |
11 | { |
12 | lenth = strlen (a); |
13 | i=0; |
14 | while (i<lenth &&a[i]<=a[i+1]) |
15 | i++; |
16 | while (i<lenth) |
17 | { |
18 | a[i]=a[i+1]; |
19 | i++; |
20 | } |
21 | s--; |
22 | } |
23 | lenth = strlen (a); |
24 | i = 0; |
25 | while (i<lenth&&a[i]== '0' ) i++; |
26 | if (i==lenth) |
27 | printf ( "0\n" ); |
28 | else |
29 | { |
30 | for (;i<lenth;i++) |
31 | printf ( "%c" , a[i]); |
32 | printf ( "\n" ); |
33 | } |
34 | } |
35 | return 0; |
36 | } |