zoukankan      html  css  js  c++  java
  • 洛谷P1012 拼数

    有n个正整数(n≤20),将它们联接成一排,组成一个最大的多位整数。

    例如:n=3时,3个整数13,312,343联接成的最大整数为:34331213
    又如:n=4时,44个整数7,13,4,246联接成的最大整数为:7424613
    输入输出格式
    输入格式:
    第一行,一个正整数n。

    第二行,n个正整数。

    输出格式:
    一个正整数,表示最大的整数

    输入输出样例
    输入样例#1:
    3
    13 312 343
    输出样例#1:
    34331213

    参考代码:

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<string>
    #include<algorithm>
    using namespace std;
    bool cmp(string a,string b)
    {
    	return a+b>b+a;//sort对字符串排序只能是c++中string类型 
    }
    int main()
    {
    	int n;
    	string a[10];
    	cin>>n;
    	for(int i=0;i<n;i++)
    		cin>>a[i];
    	sort(a,a+n,cmp);
    	for(int i=0;i<n;i++)
    		cout<<a[i];
    	/*
    	for(int i=1;i<n;i++) //排序
        {
            for(int j=i+1;j<=n;j++)
            {
                if(a[j]+a[i]>a[i]+a[j]) //string类型可以直接比较大小
                {
                    swap(a[j],a[i]);  //交换a[i]与a[j],同样可以用swap(a[i],a[j]);
                      //  举个例子:如果是12,34,由于3412>1234,所以肯定要交换一下,直接用swap就可以了
                }
            }
        } //排序结束
    	*/
    	return 0;
    }
    
  • 相关阅读:
    显示器接口
    常用英语-持续更新
    Web Service
    单元测试--Moq
    单元测试--Xunit
    Asp.Net WebApi 跨域问题
    VS中常用的快捷键
    单元测试--最佳实践
    设计模式--建造者模式
    windows10搭建GitBucket服务器(1)
  • 原文地址:https://www.cnblogs.com/yonglin1998/p/11780830.html
Copyright © 2011-2022 走看看