CI8 7 硬幣組合問題

2021-06-17 22:24:23 字數 436 閱讀 1436

給定無限個面值為25分、10分、5分、1分的硬幣,計算可以組成n分的組合方式的數目。

思路:這是乙個遞迴問題。例如n=100,我們先考慮最大的25分硬幣。先取0個25分硬幣,然後遞迴去組成100分;接著取1個25分硬幣,然後遞迴去組成75分;接著再取2個25分硬幣,然後遞迴去組成50分,等等。每次取了25分後,再按著相同的思路取10分、5分、1分。

#include using namespace std;

int makechange(int n, int c)

int num = 0;

for (int i = 0; i * c <= n; ++i)

num += makechange(n - i * c, next);

return num;

}void main()

硬幣組合問題

1分2分5分的硬幣,組成1角,共有多少種組合。不妨將這個問題一般化,即給定乙個非負陣列,求有多少種組合可以組成n。dp i n 表示用前i 1中硬幣所能組成的n的種數 遞推關係 dp i sum dp i 1 sum 0vm dp i 1 sum 1vm dp i 1 sum 2vm dp i 1 ...

硬幣組合問題 動態規劃

如果我們有面值為1元 3元和5元的硬幣若干枚,如何用最少的硬幣湊夠11元?表面上這道題可以用貪心演算法,但貪心演算法無法保證可以求出解,比如1元換成2元的時候 首先我們思考乙個問題,如何用最少的硬幣湊夠i元 i 11 當i 0,即我們需要多少個硬幣來湊夠0元。由於1,3,5都大於0,即沒有比0小的幣...

騰訊 硬幣面值組合問題

題目描述 有n種不同面值的硬幣,每種面值的硬幣都有無限多個。為了方便攜帶,希望帶盡量少的硬幣,並且要能組合出1到m之間 包括1和m 的所有面值。輸入第一行包含兩個整數m,n,含義如題目所述。第二行包含n個整數,第i個整數表示第i種硬幣的面值。輸出輸出乙個整數,表示最少需要攜帶的硬幣數量。如果無解,則...