a528: 大數排序
內容
排列數字一定很容易嗎
現在給你一堆數字
請你幫我排序
輸入
多筆測資
每筆測資第一行輸入一正整數 N
皆下來的 N 行每行有一個整數 Xi (1 <= i <= N)
(0 < N < 1000, | Xi | < 10100)
5
1
3
2
5
0
4
222222222222222222222222222
111111111111111
-44444444444444444444444444444444444444444444444444444
33333333333333333333333333333333333333333333
輸出
將排序好的數字由小到大分行輸出
範例如下
0
1
2
3
5
-44444444444444444444444444444444444444444444444444444
111111111111111
222222222222222222222222222
33333333333333333333333333333333333333333333
解題思路
定義一個結構
typedef struct node
{
int Length;
char Num[110];
}BigNum;
輸入時將大數字串存入 Num ,並將其長度存入 Length 。
如果 Num[0] 為 ‘-‘ 則將 Length 改為 -Length 。
比較 BigNum 時,先比較 BigNum.Length 如果 BigNum.Length 一樣再用 strcmp() 比較 BigNum.Num 。
完整程式碼
AC (2ms, 220KB)
|