问题标题: 酷町堂:求大神找错1214 数字顺序重构(20分)!

0
0
已解决
王梓澳
王梓澳
中级光能
中级光能

我的代码:

#include <iostream>
#include <string>
using namespace std;
int qsort(int sz[1000001],int l,int r)
{
    int i,j,mid=0,p=0;
    i=l;j=r;
    mid=sz[(l+r)/2];
    while(i<=j)
    {
        while(sz[i]<mid) i++;
        while(sz[j]>mid) j--;
        if(i<=j)
        {
            swap(sz[i],sz[j]);
            i++;j--;
        }
    }
    if(i<r) qsort(sz,i,r);
    if(l<j) qsort(sz,l,j);
}
int main ()
{
    int cd,s[1001];
    string a;
    getline (cin,a);
    cd=a.size();
    for (int i=0;i<=cd-1;i++)
    {
        s[i]=a[i];
    }
    qsort(s,0,cd-1);
    for (int i=0;i<=cd-1;i++)
    {
        a[i]=s[i];
        cout<<a[i];
    }
    return 0;
}

题目:

1214   数字顺序重构

题目描述 Description

任意输入一个正整数(位数不超过15位),取出其中的每一位数,用一个数组保存,并按照其各位数从小到大排列,将其重构组成一个新的数,输出该整数。 (注:输出的是一个整数,而不是一个数组)

输入描述 Input Description

输入为一行,表示一个位数不超过15的正整数。

输出描述 Output Description

输出为一行,表示经过顺序重构之后得到的新数。

样例输入 Sample Input

 

645312

样例输出 Sample Output

 

123456

数据来源 Source

酷町堂原创

题目网址:1214 数字顺序重构


0
已采纳
栾峻岩
栾峻岩
初级天翼
初级天翼

先把这个数,一位一位的拆下来,用一个数组记录,

然后是用你的正确快排,排序一下。

然后定义s,s=0.

for (int j=1;j<=i;j++)
        s=s*10+a[j];
    cout<<s;

100AC

0
0
潘晨皓
潘晨皓
高级天翼
高级天翼
for (int j=1;j<=i;j++)

c=c*10+z[j];

cout<<c;

 

0
欧阳语聪
欧阳语聪
资深守护
资深守护

 

for (int j=1;j<=i;j++)

a=a*10+b[j];

cout<<a;

0
我要回答