0
已解决
王紫馨
高级守护
高级守护
1412 数字删除游戏
题目描述 Description
小C最近在玩一个数字游戏,电脑上随机生成一个整数n(n可能很大,可能达到几十位,但最大不超过100位),然后电脑指定删除的位数m(m小于n的位数),要求使删除之后剩下的数字按照原来的次序组成一个新数最大。如一个整数90284316718358,电脑指定删除10位,删除之后按照原来次序组成的新数为9888。
输入描述 Input Description
输入为一行,分别为整数n,(n可能很大,可能达到几十位,但最大不超过100位),和指定的删除位数m(m小于n的位数),中间用单个空格隔开。
输出描述 Output Description
输出为一行,表示删除之后剩下的数字按照原来的次序组成一个最大的新数。
样例输入 Sample Input
90284316718358 10
样例输出 Sample Output
9888
错误代码:
#include <iostream>
#include <cstdio>
#include <string>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <iomanip>
using namespace std;
int main()
{
string s;
int n;
cin>>s>>n;
for(int i=0;i<n;i++)
{
char min=58;
int mini;
for(int j=0;j<s.size();j++)
{
if(s[j]<=min)
{
min=s[j];
mini=j;
}
}
s[mini]='a';
}
for(int i=0;i<s.size();i++)
{
if(s[i]<='9'&&s[i]>='0')
cout<<s[i];
}
return 0;
}
怎么只有20分?
哪里错了?
帮忙指出错误,告知正确,谢谢Thanks♪(・ω・)ノ!
1
已采纳
马佳滢
新手天翼
新手天翼
for(int i=0;i<num.size();i++)
{
if(num[i]<num[i+1]||i==num.size()-1)
{
num.erase(i,1);
break;
}
}
这是核心,老师上课讲的内容,随便说一下外面要输入一个字符串类型的一串数字和要删的个数,这个放在while里
0
0