P1012 拼數(字串)
阿新 • • 發佈:2019-02-16
題目描述
設有 nn 個正整數 (n≤20)(n≤20) ,將它們聯接成一排,組成一個最大的多位整數。
例如: n=3n=3 時, 33 個整數 1313 , 312312 , 343343 聯接成的最大整數為: 3433121334331213
又如: n=4n=4 時, 44 個整數 77 , 1313 , 44 , 246246 聯接成的最大整數為: 74246137424613
輸入輸出格式
輸入格式:
第一行,一個正整數 nn 。
第二行, nn 個正整數。
輸出格式:
一個正整數,表示最大的整數
輸入輸出樣例
輸入樣例#1:
3 13 312 343
輸出樣例#1:
34331213
C++的string類定義了<元素呢和+運算
'<'的定義為按字典序比較,'+'的定義為字串直接連線。
#include<cstdio> #include<iostream> #include<algorithm> #include<string> using namespace std; string a[21]; bool cmp(string a,string b) { return a+b>b+a;//a+b就是b接在a的後面 } int main() { int n; cin>>n; for(int i=1;i<=n;i++) cin>>a[i]; sort(a+1,a+n+1,cmp); for(int i=1;i<=n;i++)cout<<a[i]; return 0; }