删数问题
Time Limit: 1000MS Memory limit: 65536K
题目描述
键盘输入一个高精度的正整数n(≤100位),去掉其中任意s个数字后剩下的数字按照原来的左右次序组成一个新的正整数。编程对给定的n与s,寻找一种方案,使得剩下的数字组成的新数最小。
输入
输入有多组 每组包括原始数n,要去掉的数字数s;
输出
输出去掉s个数后最小的数
示例输入
178543 4
示例输出
13
思路 用字符串来解决
#include<stdio.h>
int main()
{
char a[105];
int n,l;
int y=0;
while(y==0)
{
for(int i=0;i<105;i++)
{
scanf("%c",&a[i]);
l=i;
if(a[i]==' ')
break;
}
scanf("%d",&n);
for(int j=0;j<l;j++)
for(int k=0;k<l-1;k++)
{
if(a[k]>a[k+1])
{int m;
m=a[k];
a[k]=a[k+1];
a[k+1]=m;}
}
for(int r=0;r<l-n;r++)
printf("%c",a[r]);
getchar();
printf("\n");
}
return 0;
}