7-18 删数问题 (10 分)
输入一个高精度的正整数n,去掉其中任意s个数字后剩下的数字按原左右次序组成一个新的正整数。编程对给定的n和s,寻找一种方案使得剩下的数字组成的新数最小。
输出新的正整数。(n不超过240位)
输入数据均不需判错。
输入格式:
n和s
输出格式:
最后剩下的最小数,注意前导0不要输出。
输入样例:
176438 4
输出样例:
在这里给出相应的输出。例如:
13
作者
严华云
单位
湖州师范学院
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
#include<iostream> #include<string.h> using namespace std; int main(){ string a; int b; cin>>a>>b; for(int i=0;i<b;i++){ char max=a[0]; for(int j=0;j<a.length();j++){ if(a[j]>a[j+1]){ //cout<<a[j]<<endl; a=a.assign(a.c_str(),j)+a.substr(j+1); break; } } } for(int i=0;i<a.length();i++){ //cout<<a[i]<<endl; if(a[i]=='0'){ a=a.substr(i+1); i--; } else{ break; } } cout<<a; }