题目描述
输入一个高精度的正整数N,去掉其中任意S个数字后剩下的数字按原左右次序组成一个新的正整数。编程对给定的N和S,寻找一种方案使得剩下的数字组成的新数最小。
输出新的正整数。(N不超过240位)输入数据均不需判错。
输入
输入n和s
输出
输出最后剩下的最小数。
样例输入 Copy
175438 4
样例输出 Copy
13
提示:题目要求输入的n不小于240位,c中最长整型为64位,远远不满足题目要求,因此要有字符输入。
#include<stdio.h>
#include<string.h>
int main()
{
char a[250];
int n,s;
scanf("%s%d",a,&s);
n=strlen(a);
while(s--)
{
for(int i=0;i<n;i++)
{
if(a[i]>a[i+1])
{
for(int j=i;j<n;j++)
{
a[j]=a[j+1];
}
n--;
break;
}
}
}
n=strlen(a);
while(n>=1&&a[0]=='0')
{
for(int i=0;i<n;i++)
{
a[i]=a[i+1];
}
n--;
}
puts(a);
return 0;
}