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
0
0