設有n個正整數 (n<=20), 將它們連線成一排, 組成乙個最大的多位整數.
例如: n=3時, 3個整數13, 312, 343連線成的最大整數為: 34331213
又如: n=4時, 4個整數7,13,4,246連線成的最大整數為: 7424613
輸入格式:
n n個數
輸出格式:
連線成的多位數
輸入樣例#1:
3輸出樣例#1:13 312 343
47 13 4 246
34331213自己寫的**7424613
error
#include
#include
using namespace std;
struct stuarr[21];
bool cmp(stu x,stu y)
int main()
}
#include#include#include#include#includeusing namespace std;
int n;
string st[100];
bool cmp(string a,string b)
int main()
{ scanf("%d",&n);
for (int i=1;i<=n;i++) cin>>st[i];
sort(st+1,st+n+1,cmp);//把n個字串排序,是從大到小
for (int i=1;i<=n;i++)//輸出
cout<
之所以寫成return (a+b > b+a),是因為在比對每兩個字串時,會比較不同拼接方式究竟哪種更大。例如,當遇到『313』和『9』這兩個字串時,計算機會依照字典序比較『3139』和『9313』的大小,哪種更大就依照哪種拼接在一起。而對這道題而言,區域性判斷最優可以導致全域性最優,因此以上方法是可行的。
#includeusing namespace std;
int main()
{ string str[3];
str[0]="zhou";
str[1]="xing";
str[2]="xing";
for(int i=0;i<3;i++)
cout<
P1107 最大整數
設有n個正整數 n 20 將它們連線成一排,組成乙個最大的多位整數.例如 n 3時,3個整數13,312,343連線成的最大整數為 34331213 又如 n 4時,4個整數7,13,4,246連線成的最大整數為 7424613 輸入格式 n n個數 輸出格式 連線成的多位數 輸入樣例 1 3 13...
luogu P1107 最大整數
設有n個正整數 n 20 將它們連線成一排,組成乙個最大的多位整數.例如 n 3時,3個整數13,312,343連線成的最大整數為 34331213 又如 n 4時,4個整數7,13,4,246連線成的最大整數為 7424613 輸入格式 nn個數 輸出格式 連線成的多位數 輸入樣例 1 3 13 ...
最大整數 貪心
題目描述 設有n個正整數 n 20 將它們連線成一排,組成乙個最大的多位整數.例如 n 3時,3個整數13,312,343連線成的最大整數為 34331213 又如 n 4時,4個整數7,13,4,246連線成的最大整數為 7424613 輸入輸出格式 輸入格式 n n個數 輸出格式 連線成的多位數...