早上又回頭跑去寫 UVa Online Judge 的題目,這應該是參加高中生與大學生在寫的?好久沒寫了...
這東西除了訓練資料結構與演算法外,另外還可以訓練「鑽牛角尖讀 spec」的能力:在題目裡沒保證的,就一定會炸給你看...
舉例來說,第一題的「100 - The 3n + 1 problem」上面只說要找 i 與 j 之間的範圍的最大值。於是很多人就寫了:
for (t = i; t <= j; t++) { ... }
文件上有提到保證 i <= j
嗎?沒有。
多練習這些題目後,除了資料結構與演算法外,對於實際工作的文件就會很自然而然避免過度解讀。