版权声明:https://blog.csdn.net/huashuimu2003 https://blog.csdn.net/huashuimu2003/article/details/84438309
题目
描述 Description
输入一个高精度的正整数n(≤240位),去掉其中任意s个数字后剩下的数字按原左右次序将组成一个新的正整数。编程对给定的n和s,寻找一种方案,使得剩下的数字组成的新数最小。
(仔细思考,这道题并不是很水)
输入格式 Input Format
两行,每行一个整数:
n(n为小于240位的整数)
s
输出格式 Output Format
最后剩下的最小数。
样例输入 Sample Input
178543
4
样例输出 Sample Output
13
时间限制 Time Limitation
1s
来源 Source
noip原题
代码
#include<bits/stdc++.h>
#include<string>
using namespace std;
char a[255];
int main() {
int s;
bool flag=0;
scanf("%s %d",a,&s);
int len=strlen(a);
for (int i=1; i<=s; i++)
{
for (int j=0; j<len; j++)
{
if (a[j]>a[j+1])
{
for (int k=j; k<len; k++)
a[k]=a[k+1];
break;
}
}
len--;
}
for (int i=0;i<len;i++)
{
if (a[i]!='0'||i==len-1) flag=1;
if (flag) printf("%c",a[i]);
}
printf("\n");
return 0;
}