• UVA10905 Children's Game


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

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

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

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

    /* UVA10905 Children's Game */
    
    #include <iostream>
    #include <cstdio>
    #include <algorithm>
    
    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<n; i++)
             cin >> val[i];
    
          sort(val, val + n, cmp);
    
          for(int i=0; i<n; i++)
             cout << val[i];
          cout << endl;
       }
    
       return 0;
    }

    没有AC的C语言程序如下:

    /* UVA10905 Children's Game */
    
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    
    typedef unsigned long long ULL;
    
    #define MAXN 50
    
    int 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<n; i++)
                scanf("%llu", &val[i]);
    
            qsort(val, n, sizeof(val[0]), cmp);
    
            for(i=0; i<n; i++)
                printf("%llu", val[i]);
            printf("
    ");
        }
    
        return 0;
    }


  • 相关阅读:
    php--------ThinkPHP3.2验证码使用
    mysql--------四种索引类型
    php--------递归函数
    php--------对象(object) 与 数组(array) 的转换
    ZH奶酪:Windows7+VirtualBox安装Ubuntu虚拟机问题总结
    第一次工作面试(蘑菇街)
    ZH奶酪:【阅读笔记】Deep Learning, NLP, and Representations
    web开发学习之旅
    隐马尔可夫模型实战
    ZH奶酪:Python中range和xrange的区别
  • 原文地址:https://www.cnblogs.com/tigerisland/p/7564462.html
Copyright © 2020-2023  润新知