HHUOJ 1349 分割排序

2021-09-16 20:56:24 字數 1391 閱讀 8729

輸入一行數字,如果我們把這行數字中的『5』都看成空格,那麼就得到一行用空格分割的若干非負整數(可能有些整數以『0』開頭,這些頭部的『0』應該被忽略掉,除非這個整數就是由若干個『0』組成的,這時這個整數就是0)。

你的任務是:對這些分割得到的整數,依從小到大的順序排序輸出。

輸入包含多組測試資料。每組輸入資料只有一行數字(數字之間沒有空格),這行數字的長度不大於1000。

輸入資料保證:分割得到的非負整數不會大於100000000,輸入資料不可能全由『5』組成。

對於每個測試用例,輸出分割得到的整數排序的結果,相鄰的兩個整數之間用乙個空格分開,每組輸出佔一行。

0 77 12312320

這道題的坑點巨多:

1.考慮輸入為0000,0000001等不含5的情況!

2.考慮含有多個5的情況

3.抹去數前多個0的情況

我的**比較冗長:

#include

#include

#include

typedef

long

long ll;

using namespace std;

ll qsort

(ll a,

int low,

int high)

//排序我用了快排,嫌煩的話可以直接呼叫sort函式

a[first]

= a[last]

;while

(first < last && a[first]

<= key)

a[last]

= a[first];}

a[first]

= key;

qsort

(a, low, first -1)

;qsort

(a, first +

1, high);}

intmain()

}if(flag)

//輸入的數不含5的情況}if

(flag) cout <<0;

}else

//後面含有5的情況

a[u++

]= w;}}

for(

int i =

0; i < t; i++)}

if(flag)

for(

int j = n; j >= m; j--

) a[u++

]= w;}}

qsort

(a,0

, u -1)

;for

(int i =

0; i < u; i++

) cout << endl;

}}

C語言程式設計 9 6 分割排序

輸入一行數字,如果我們把這行數字中的 5 都看成空格,那麼就得到一行用空格分割的若干非負整數 可能有些整數以 0 開頭,這些頭部的 0 應該被忽略掉,除非這個整數就是由若干個 0 組成的,這時這個整數就是0 你的任務是 對這些分割得到的整數,依從小到大的順序排序輸出。輸入 每組輸入資料只有一行數字 ...

千分位分割

格式化數字 67235943 為貨幣金額顯示方式 67,235,943要怎麼做,這是暫時不考慮有小數的形式 採用正則替換,呼叫字串replace方法 67235943 replace d d g,1,如果有小數部分,如 67235943.4687 此時如果只格式化整數部分,採用上面的正則,不過要稍微...

2 4 分割鍊錶

template typename t singlylinkednode partition singlylinkednode head,t partition singlylinkednode newhead head singlylinkednode newtail head singlylin...