給定硬幣面值湊成金額共有多少種選法(動態規劃)

2021-10-08 18:13:51 字數 954 閱讀 7595

硬幣。給定數量不限的硬幣,幣值為25分、10分、5分和1分,編寫**計算n分有幾種表示法。(結果可能會很大,你需要將結果模上1000000007)

示例1:

輸入: n = 5

輸出:2

解釋: 有兩種方式可以湊成總金額:

5=55=1+1+1+1+1

示例2:

輸入: n = 10

輸出:4

解釋: 有四種方式可以湊成總金額:

10=10

10=5+5

10=5+1+1+1+1+1

10=1+1+1+1+1+1+1+1+1+1

說明:

注意:你可以假設,0 <= n (總金額) <= 1000000

class

solution

//dp打表,用dp[i][v]表示前i個***構成金額v有幾種表示

const

int mod =

1e9+7;

int coins[4]

=;vectorint>>dp(

4, vector<

int>

(n +1,

0));

for(

int i =

0; i <4;

++i)

//列舉第i個***需要取幾次

// int t = j / coins[i];

// for(int k = 0; k <= t; ++k)

//不選0,選t次

dp[i]

[j]= dp[i -1]

[j];

if(j - coins[i]

>=0)

}}return dp[3]

[n];}}

;

7621 硬幣面值組合

描述 使用1角 2角 5角硬幣組成 n 角錢。設1角 2角 5角的硬幣各用了a b c個,列出所有可能的a,b,c組合。輸出順序為 先按c的值從小到大,若c相同則按b的值從小到大。輸入乙個整數n 1 n 100 代表需要組成的錢的角數。輸出輸出有若干行,每行的形式為 i a b c 第1列i代表當前...

騰訊 硬幣面值組合問題

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

python面值組合 題目1 硬幣面值組合

問題描述 評測題目 給定 m 種面值的硬幣,每種面值的硬幣有無限多個,它們的面值分別為c c 0 c 1 c m 1 現用這些面值的硬幣湊齊 n 元,求有多少種方法。如 n 3,m 4,c 8,3,1,2 則有 3 種方法,分別為 問題分析 給定乙個金額n,假設有m種面值的硬幣c c 0 c 1 c...