题目描述
输入n个不超过30000的整数(n≤10)。然后求出每个数的数字和,再按每个数的数字和由小到大排列输出。
输入
第一行为整数n
第二行为n个整数
输出
由小到大排列的每个数的数字和(每个数之间保留一个空格)
样例
输入
4
33 104 87 16
输出
5 6 7 15
提示
示例输出说明:
5为数104的数字和,即 5=1+0+4 6为数33的数字和, 即 6=3+3 7为数16的数字和, 即 7=1+6 15为数87的数字和,即 15=8+7
参考代码:
#include <bits/stdc++.h>
using namespace std;
int N=30000;
int main()
{
int n,a[N],b[N],temp;
cin>>n;
for(int i=0;i<n;i++)
cin>>a[i];
for(int i=0;i<n;i++)
{
int num=a[i],x=0;
while(num)
{
x +=num%10;
num =num/10;
}
b[i] = x;
}
for(int i=0;i<n;i++)
{
for(int j=0;j<n-1;j++)
{
int temp;
if(b[j]>b[j+1])
{
temp = b[j];
b[j] = b[j+1];
b[j+1] = temp;
}
}
}
for(int i=0;i<n;i++) cout<<b[i]<<" ";
return 0;
}