最大整数(Noip1998连接多位数)
【问题描述】
设有n个正整数(n≤20),将它们联接成一排,组成一个最大的多位整数。
例如:n=3时,3个整数13,312,343联接成的最大整数为:34331213
又如:n=4时,4个整数7,13,4,246联接成的最大整数为:7424613
【输入格式】
n
n个数
【输出格式】
联接成的多位数
【输入样例】maxnum.in
3
13 312 343
【输出样例】maxnum.out
34331213

分析:
这个题目很自然地想到把n个数按照字符串排序之后输出即可。
但是对两个串A和B,假如按照正常的strcmp(A,B)的结果来判断A和B的大小关系
从而作为排序依据的话,很容易就可以举例说明不正确:
例如A=“13”,B=“132”,strcmp(A,B)发现A<B,但是AB>BA。
所以,这里应该判断AB和BA的大小关系来判断A和B的大小关系:
若是AB>BA则A>B,若是AB<BA则A<B,否则A==B。
按照这个比较规则对所有字符串排序并输出即可。

 1 #include <stdio.h>
 2 #include<stdlib.h>
 3 #include<string.h>
 4 int cmp(const void * a,const void *b)
 5 {
 6     char ab[105],ba[105];
 7     strcpy(ab,(char *)a);strcat(ab,(char *)b);
 8     strcpy(ba,(char *)b);strcat(ba,(char *)a);
 9     return strcmp(ba,ab);
10 }
11 int main()
12 {
13     int n,i,temp;
14     char a[23][50];
15     freopen("maxnum.in","r",stdin);
16     freopen("maxnum.out","w",stdout);
17     scanf("%d",&n);
18     for(i=0;i<n;i++)
19         scanf("%s",a[i]);
20     /*for(i=0;i<n;i++)
21         printf("%s\n",a[i]);*/
22     qsort(a,n,sizeof(a[0]),cmp);
23     for(i=0;i<n;i++)
24         printf("%s",a[i]);
25     return 0;
26 }

转载于:https://www.cnblogs.com/huashanqingzhu/p/6728717.html

最大整数(Noip1998连接多位数)相关推荐

  1. 从底层重学 Java 之 BigInteger 大整数 Gitchat连接

    Gitchat连接 https://gitbook.cn/gitchat/activity/5f395a80aced402379f6a0ca 简介 从底层,从原理,我们来重学一次 Java.BigIn ...

  2. python字符串转整数_Python连接字符串和整数

    python字符串转整数 Python supports string concatenation using + operator. In most of the programming langu ...

  3. 问题 A: 深入浅出学算法044-最大整数

    题目描述 设有n个正整数(n≤20),将它们联接成一排,组成一个最大的多位整数. 例如:n=3时,3个整数13,312,343联接成的最大整数为:34331213 又如:n=4时,4个整数7,13,4 ...

  4. python拆分列表元素_Python将列表拆分为一个元素 - python

    我正在使用Python分析数据,并且有N个2d数据数组的列表.我想一一查看这些元素,并将它们与其他N-1个元素的平均值进行比较. Python中是否有内置方法可循环遍历列表,一方面具有单个元素,另一方 ...

  5. 汇编语言等号=伪指令

    等号伪指令(equal-sign directive)把一个符号名称与一个整数表达式连接起来,其语法如下: name = expression 通常,表达式是一个 32 位的整数值.当程序进行汇编时, ...

  6. c 语言开发一个四则运算器,C++实现四则运算器(无括号)

    本文实例为大家分享了C++实现无括号的四则运算器的具体代码,供大家参考,具体内容如下 完成度更高的带括号版本可以看C++实现四则运算器(带括号) 对于无括号的计算器,实现起来比较容易,下面让我们一步步 ...

  7. 记住,TCP是一种流协议

    1. TCP是一种流协议(stream protocol) 这就意味着数据是以字节流的形式传递给接收者的,没有固有的"报文"或"报文边界"的概念.从这方面来说, ...

  8. Python花式编程案例集锦(9):sorted()函数中消失的cmp参数

    明天开启全国巡讲Python模式,连续8场20天讲课,外加路上来回大约16天,这个假期有的忙了.所以接下来的一段时间里不一定能像以前更新的那么频繁,我尽量. 在很久很久很久以前,公众号曾经推送过这样一 ...

  9. smb.conf - Samba组件的配置文件

    http://manpages.ubuntu.com/manpages/lucid/zh_CN/man5/smb.conf.5.html lucid (5) smb.conf.5.gz Provide ...

最新文章

  1. Python使用numpy包编写自定义函数计算平均绝对误差(MAE、Mean Absolute Error)、评估回归模型和时间序列模型、解读MAE
  2. Vue教程3【使用Vue脚手架】render ref props minin scoped $emit $bus 消息订阅发布 动画
  3. Airflow安装部署
  4. 死里逃生!国足2:1逆转泰国队晋级亚洲杯八强
  5. 生成多个互不重叠的不同半径圆
  6. Solaris 10装置jdk1.6及改削成默许JDK
  7. python随机抽签列表中的同学值日_神奇的大抽签--Python中的列表_章节测验,期末考试,慕课答案查询公众号...
  8. 实战-动手开发第一个区块链投票DAPP
  9. Hibernate(2012/2/27)
  10. 关于php网络爬虫phpspider
  11. 使用linux,导出mysql数据库信息,连接聚石塔
  12. [OpenGL] 动态积雪效果
  13. Python基础语句(一)
  14. sublime - sublimerge 文本比较插件
  15. 图片情感分析(1):图像数据预处理
  16. 去面试了几家BATJ等N家互联网大厂
  17. LS1046A 启动流程分析
  18. 时域采样与频域采样实验报告_光时域反射仪(OTDR)如何工作(光电读书)
  19. HTTP/2和HTTP/3
  20. LS1028使用SPI1软件方案

热门文章

  1. 判断一个显示对象是否移除
  2. Spark编程指南笔记
  3. android音乐播放器、多种架构综合应用、滤镜处理等源码
  4. Java过滤HTML标签工具类
  5. Windows Phone 7 学习笔记1:Hello, Windows Phone 7
  6. linux ssh连接慢
  7. 与其雇人杀虫不如购买杀虫剂
  8. MySQL绿色版的应用
  9. 设置Exchange 2010附件大小限制原则
  10. Windows 2003 安装WLM2009/MSN9错误的另一种解决办法