題目連結:
給定一正整數 T (1 ≦ T ≦ 20),代表有 T 筆的測試資料。每筆測試資料佔兩列,第一列給定一正整數 n (1 ≦ n ≦ 100),代表第二列有 n 個正整數(皆介於 1 ~ 25000 之間)。這 n 個正整數代表一貨幣系統的幣值。
求最少需要幾種幣值就可以表示出原本 n 個幣值所能表示的金額?
以範例輸入第一個測資為例:6 = 3 + 3 、 19 = 10 + 3 × 3 ,因此最少需要 3 、 10 這兩個幣值即可表示出原本可表示的金額。
2
4
3 19 10 6
5
11 29 13 19 17
假設給定的最大幣值為 M 。先將 1 ~ M 之間所有可湊出的金額之方法數先算出來(利用
這題的方法)。
接著,用一迴圈從 1 開始到 M 為止,看是否有金額的表示方法數為一種,而且無法以比其值小的幣值表示出來。則此金額即是必需的幣值之一。
最後看所需的幣值之數量為多少,即是所求。
此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。