#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
//选择法排序,升序,较快的一种排序,只需交换n-1次
void DataSort (int score[],int n);
int main()
{
int T,n,a[1000];
int i,k,max,min;
cin >> T ;
while(T--)
{
max = 0;
min = 0;
cin >> n;
for(i=0 ;i<n ; i++)
{
cin >> a[i];
}
DataSort(a,n);
for(i=0 ;i<n ; i++)
{
if(a[i]!=0)
{
k = i;
break;
}
}
for(i=n-1 ;i>=0 ; i--)
{
max += a[i]*pow(10,i);
}
for(i = k ; i<n ;i++)
{
min += a[i]*pow(10,n-1-i);
}
cout <<max-min<<endl;
}
return 0;
}
void DataSort (int score[],int n)
{
int i,j,k,temp;
for(i=0;i<n-1;i++)
{
k = i;
for(j=i+1 ; j<n ; j++)
{
if(score[j] < score[k])
{
k = j;
}
}
if(k!=i)
{
temp = score[k];
score[k] = score[i];
score[i] = temp;
}
}
}
题目描述
输入一个整数数组,将它们连接起来排成一个数,找出能排出的所有数字中最大,最小的两个,输出两个数的差值。例如输入数组{1, 2},则输出9。
输入
第一行输入一个整数T,表示有T组测试数据。每组测试数据的第一行输入一个整数n(0<n<=1000),第二行输入n个整数ai(0<=ai<2^32)。
输出
输出最大数最小数的差值,输出占一行。
样例输入
1 3 1 2 3
样例输出
198