每日程式設計系列 硬幣找零

2022-08-01 07:42:09 字數 773 閱讀 4281

一、題目

現存在一堆面值為 v1、v2、v3 … 個單位的硬幣,問最少需要多少個硬幣才能找出總值為 t 個單位的零錢?

輸入描述:

首先輸入整數t表示需要找零的面值

然後輸入整數n表示,可供選擇的硬幣的種數

最後迴圈錄入可供選擇的硬幣陣列

輸出描述:
輸出為一行,如果可以找零,輸出所需的最小硬幣數,否則輸出-1
輸入例子:
63

51 2 5 21 25

輸出例子:
3
二、答案解析顯然需要找零的面值越大,那麼求解的難度就相應加大,因此根據動態規劃的思想,我們可以先將大規模的問題分解成幾個小規模的易解的問題(當然每個子問題之間是不相互獨立的,存在一定的聯絡),在這個問題裡,我們把大面值的目標,先分解成幾個小面值目標進行求解,最後,利用小面值目標的解,去得出大面值目標的解,具體實現,首先是先從小面值的找零開始,將解決方案依次存入動態規劃陣列,一直往大面值累加,最後直接輸出動態規劃陣列指定位置的值也即大面值找零所需的最少硬幣數,演算法實現如下:

動態規劃 硬幣找零

時間限制 1000 ms 記憶體限制 65535 kb 描述在現實生活中,我們經常遇到硬幣找零的問題,例如,在發工資時,財務人員就需要計算最少的找零硬幣數,以便他們能從銀行拿回最少的硬幣數,並保證能用這些硬幣發工資。我們應該注意到,人民幣的硬幣系統是 100,50,20,10,5,2,1,0.5,0...

nyoj 995 硬幣找零

時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述 在現實生活中,我們經常遇到硬幣找零的問題,例如,在發工資時,財務人員就需要計算最少的找零硬幣數,以便他們能從銀行拿回最少的硬幣數,並保證能用這些硬幣發工資。我們應該注意到,人民幣的硬幣系統是 100,50,20,10,5,2,1...

nyoj 995 硬幣找零

時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述 在現實生活中,我們經常遇到硬幣找零的問題,例如,在發工資時,財務人員就需要計算最少的找零硬幣數,以便他們能從銀行拿回最少的硬幣數,並保證能用這些硬幣發工資。我們應該注意到,人民幣的硬幣系統是 100,50,20,10,5,2,1...