切換
舊版
前往
大廳
主題

ZeroJudge - a825: 3.小四數學 解題心得

Not In My Back Yard | 2020-09-22 22:49:54 | 巴幣 2 | 人氣 315

題目連結:


題目大意:
輸入有兩列。第一列給定一正整數 m (m ≦ 9),代表數字的個數。第二列給定 m 個整數(皆介於 0 ~ 9 之間),代表給定的數字。

試問這 m 個數字能組出來的兩個數字,其最大乘積為何?

注:如果 m 為偶數,則組出來的兩個數字都必須是 m ÷ 2 位數;反之,如果是奇數則一個是 (m - 1) ÷ 2 位數、另一個是 (m + 1) ÷ 2 位數。



範例輸入:
3
2 2 5


範例輸出:
110


解題思維:
窮舉這 m 個數字取 (m ÷ 2 取整) 個數字的方法即可。因此,每個取法就代表著一個被組出來的數字,因此剩下沒被挑到的就是另一個數字。

因為乘積要盡量大,所以每個方法取出來後,將盡量大的放在高位。例如取到 1 、 4 、 2 ,則應排成 421 ,而不是其他的數字。

最後看哪個取法得出的乘積最大,即是所求。




此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創作回應

更多創作