删数问题
Time Limit: 1000 ms
Memory Limit: 65536 KiB
Problem Description
键盘输入一个高精度的正整数n(≤100位),去掉其中任意s个数字后剩下的数字按照原来的左右次序组成一个新的正整数。编程对给定的n与s,寻找一种方案,使得剩下的数字组成的新数最小。
Input
输入有多组 每组包括原始数n,要去掉的数字数s;
Output
输出去掉s个数后最小的数
Sample Input
178543 4
Sample Output
13
Hint
Source
#include<stdio.h> #include<string.h> int main() { int s, i, l; char a[108]; while(scanf("%s %d", a, &s) != EOF) { while(s--) { l = strlen(a); i = 0; while(i < l && a[i] <= a[i + 1]) i++; while(i < l) { a[i] = a[i + 1]; i++; } } l = strlen(a); i = 0; while(i < l && a[i] == '0') i++; if(i < l) { while(i < l) { printf("%c", a[i]); i++; } } else printf("0"); printf("\n"); } return 0; }