救命,第一此做题就难住了。这是 7.24 每日一练的题目,自己试着写了很久,感觉没有错,但一直通过不了,自己能想到的例子都试过了没问题。请大家帮忙看一下,写的代码不太规范,还请见谅
题目描述:
给定任意一个数字 m,然后给出数字 n,则需在 m 中去掉 n 位数,保持各位顺序不变的情况下,得到最大数。
输入描述:
输入整数n,m.(1<=n<=1e100,1<=m<=100)
输出描述:
输出删除后的最大数。
**示例 **
输入:1234 2
输出:34
void solution(int arr[2])
{
int i=0;
int b[10];
while(arr[0]%10)
{
b[i]=arr[0]%10;
i++;
arr[0]=arr[0]/10;
}
i--;
int temp = i;
int max = 0;
int flag = 0;
int sum = 0;
int n=i;
while(flag<i+1 - arr[1] && i>0)
{
for(int j=temp;j>=i-arr[1]-flag;j--)
{
if(j == i){
if(b[j]>max && j<=temp )
{
max = b[j];
temp = j-1;
n=j;
}
}
else{
if(b[j]>max && j<=temp )
{
max = b[j];
temp = j;
if(j==n)max=0;
n=j;
}
}
}
sum = sum*10+max;
max=0;
flag++;
}
printf("%d",sum);
}
int main() {
int arr[2];
for (int i = 0; i < 2; i++)
{
scanf("%d", &arr[i]);
}
solution(arr);
return 0;
}