博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UVA10905 Children's Game
阅读量:6147 次
发布时间:2019-06-21

本文共 1202 字,大约阅读时间需要 4 分钟。

问题链接:。基础级练习题,用C++语言编写程序。

题意简述:输入n个正整数,将其连成一个最大的整数。

问题分析:本题有三大要点,一是并非把大的整数放在前面,例如12和3,构成的最大整数是312;二是也不能够简单地用函数strcmp()进行比较,例如9和90,构成的最大整数为990而不是909;三是n个整数里,有的可能是大整数,编写了一个C语言的程序,总是AC不了,后来终于明白了。

AC的C++语言程序如下:

/* UVA10905 Children's Game */#include 
#include
#include
using namespace std;const int MAXN = 50;string val[MAXN];bool cmp(string a ,string b){ return a+b > b+a;}int main(){ int n; while(scanf("%d",&n)!=EOF && n != 0) { for(int i=0; i
> val[i]; sort(val, val + n, cmp); for(int i=0; i
没有AC的C语言程序如下:

/* UVA10905 Children's Game */#include 
#include
#include
typedef unsigned long long ULL;#define MAXN 50int n;ULL val[MAXN];char sa[20], sb[20], sab[40], sba[40];int cmp(const void * a, const void * b){ sprintf(sa, "%llu", *(ULL *)a); sprintf(sab, "%llu", *(ULL *)a); sprintf(sb, "%llu", *(ULL *)b); sprintf(sba, "%llu", *(ULL *)b); strcat(sab, sb); strcat(sba, sa); return strcmp(sba, sab);}int main(void){ int i; while(scanf("%d", &n) != EOF && n != 0) { for(i=0; i

转载于:https://www.cnblogs.com/tigerisland/p/7564462.html

你可能感兴趣的文章
雅虎瓦片地图切片问题
查看>>
HTML 邮件链接,超链接发邮件
查看>>
HDU 5524:Subtrees
查看>>
手机端userAgent
查看>>
pip安装Mysql-python报错EnvironmentError: mysql_config not found
查看>>
http协议组成(请求状态码)
查看>>
怎样成为一个高手观后感
查看>>
[转]VC预处理指令与宏定义的妙用
查看>>
JQuery radio单选框应用
查看>>
MySql操作
查看>>
python 解析 XML文件
查看>>
MySQL 文件导入出错
查看>>
HDU2502 月之数(解法三)
查看>>
栈的压入、弹出序列 (剑指offer)
查看>>
java相关
查看>>
由一个异常开始思考springmvc参数解析
查看>>
layer弹出层不居中解决方案,layer提示不屏幕居中解决方法,layer弹窗不居中解决方案...
查看>>
获取本机外网ip和内网ip
查看>>
sql优化
查看>>
hammer.js移动端手势库
查看>>