差值

#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

猜你喜欢

转载自blog.csdn.net/uzzzhf/article/details/81698845