硬幣找零問題,動態規劃基礎,百度面試題

2022-08-21 14:33:09 字數 484 閱讀 9085

問題描述:給出幾種面值的硬幣,要求用這幾種硬幣找零出所給零錢數,用的硬幣數要最少。

那麼動態規劃又該如何解決,動態規劃在於在解決問題的途中用到之前的得到的答案。

**如下:

#includeusing

namespace

std;

//三個引數依次是硬幣面值陣列,硬幣種類,給出的零錢

void getmin(int *values,int valuekinds,int

money)}}

coinused[cent] =mincent;

coinusednum[cent] =moneyused;

}if(coinusednum[money] == 0

) else

}}int

main();

int money = 24

; getmin(a,

5,money);

}

硬幣找零問題(動態規劃)

給定指定的硬幣種類,面值為 1,3,5 在此具體化些 給定所找零的錢數 sum,給出最少的硬幣找零數,每個種類的硬幣無限使用。看到這問題,當時我想到用貪心演算法來求解,最後求解方案因為巧合對了,後來在網上看到動態規劃的題目,才知道貪心演算法得不到最優解,比如 給定 面值為 1,3,4,給定找零數為 ...

硬幣找零問題 動態規劃問題

看到了 這文章,由於我不太懂他的 所以我按他的題和思路,寫了 思路我就不寫了,就是動態規劃的思路,先保證區域性最優,再慢慢向全區域性最優 include include include include using namespace std const int m 100 int coinsum m...

動態規劃 硬幣找零

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