删数问题
Time Limit: 1000MS Memory limit: 65536K
题目描述
键盘输入一个高精度的正整数n(≤100位),去掉其中任意s个数字后剩下的数字按照原来的左右次序组成一个新的正整数。编程对给定的n与s,寻找一种方案,使得剩下的数字组成的新数最小。
输入
输入有多组 每组包括原始数n,要去掉的数字数s;
输出
输出去掉s个数后最小的数
示例输入
178543 4
示例输出
13#include <iostream> #include <cstdio> #include <cstring> using namespace std; int main() { char nn[110]; int n; while(cin >> nn) { cin >> n; int len, i; while(n --) { i = 0; len = strlen(nn); while(i < len && nn[i] <= nn[i+1]) i++; while(i < len) { nn[i] = nn[i+1]; i++; } } len = strlen(nn); for(i = 0; i < len; i++) { if(nn[i] != '0') { cout << nn[i]; break; } } for(int k = i+1; k < len; k++) { cout << nn[k]; } cout << endl; } return 0; }