问题标题: 酷町堂:2790 寻找最大数(E.S)

0
0
已解决
鲁天一
鲁天一
初级光能
初级光能

献上0分代码

#include<iostream>
#include<cstdio>
#include<string>
#include<cmath>
#include<algorithm>
#include<cstring>
using namespace std;
int main()
{
    string a;
    int k;
    while(cin>>a>>k)
    {
        for(int i=0;k!=0;i++)
        {
            if(a[i]<a[i+1])
            {
                swap(a[i],a[i+1]);
                k--;
            }
        }
        cout<<a<<endl;
        memset(a,0,sizeof(a));
    }
    return 0;
}

 


0
已采纳
贾文卓
贾文卓
高级光能
高级光能

在每一次的交换之后,应该将i重头再循环一次,因为交换后可能在更前面又出现的交换的机会。

贾文卓在2019-07-18 17:32:33追加了内容

这才发现思路错了......不一定是这样交换,有可能要优先把最大的数移动到最前面!!!

(30酷町豆的代价啊......)

0
我要回答