题目描述
设有nn个正整数(n≤20)(n≤20),将它们联接成一排,组成一个最大的多位整数。
例如:n=3n=3时,33个整数1313,312312,343343联接成的最大整数为:3433121334331213
又如:n=4n=4时,44个整数77,1313,44,246246联接成的最大整数为:74246137424613
输入格式
第一行,一个正整数nn。
第二行,nn个正整数。
输出格式
一个正整数,表示最大的整数
精髓就是string对象的直接相加。
#include<iostream>
#include <string>
#include <vector>
using namespace std;
void Swap(string &a,string &b)
{
string c;
c = a;
a = b;
b = c;
}
int main(){
string a[21];
int n;
cin >> n;
for (int i = 0;i < n;i++)
{
cin >> a[i];
}
for (int i = 0;i < n-1 ;i++)
{
for (int j = 0;j < n-1;j++)
{
if ( a[j]+a[j+1] < a[j+1] + a[j])
{
Swap(a[j],a[j+1]);
}
}
}
for (int i = 0;i < n;i++)
{
cout << a[i];
}
}