HLG 1644 比较多个大数的大小

2014-11-24 02:51:47 · 作者: · 浏览: 1

题目大意:

本题有多组测试数据,每组测试数据占n+1行。
第一行输入一个数字n (1 ≤ n ≤ 100),表示正整数的个数,接下来n行每行输入一个正整数,每个正整数不超过10^100。

每组测试数据输出占n行,按照从小到大的顺序输出;

分析:比较多个大数的大小,首先想到要用字符串来表示每一个数,然后根据每个数的长度排序,长度相等的则比较每一个数字字符的大小;

解题代码如下:

#include 
  
   
#include 
   
     #include 
    
      #include 
     
       using namespace std; typedef struct Node_ { char Num[1005]; int len; }Node; Node N[105]; int cmp(const void *a, const void *b) { Node *p1 = (Node *)a; Node *p2 = (Node *)b; if(p1->len != p2->len) { return p1->len - p2->len; }else { return strcmp(p1->Num, p2->Num); } } int main() { int n; while(~scanf(%d, &n)) { for(int i=0; i
      
       

后续解法待续。。。。