這題難度比 a021. 大數運算 簡單很多,如果有在 a021 寫過「小於」的判斷,這題就很好解(但不一定快)
這裡列舉兩個方法
我沒把握「C 陣列最小要開多少才能過」,只知道開到 101 可以過;C++ 可以考慮用 std::vector
以每個位數來說 '0'<'1'
等同於 0<1
,直接拿來比就好,又可以省去 char 轉 int 的動作,會快一些
排序我是直接用內建的,stdlib.h
的 qsort
和 algorithm
的 sort
,都需要自己寫判斷式,
可以參考 http://www.cplusplus.com/reference/cstdlib/qsort/ 和 http://www.cplusplus.com/reference/algorithm/sort/
唯比較上要注意一些細節
(-)
小於 (+)
(+)
,數字小的比較小(-)
,數字小的比較大使用函式庫 decimal
再加上 sort
/sorted
,就能迎刃而解
要練習的話,也可以拿上述 C/C++ 的方法來寫看看