錢幣兌換問題

2021-10-01 13:59:52 字數 744 閱讀 8977

這道題目就需要學習一種思路:

他是要求完全揹包的分配方案數,和原先學習的完全揹包不太一樣。

思想就是每次更改乙個硬幣的面值(當然因此剩餘的錢要相應減少),比如4的話:

可以有3種情況:

1,1,1,1

1,1 , ,2

2 ,, ,2

然後你會發現2的話是:

1,12

4可以看作是只換成1的方案數 加上 2能換成任意面值的方案數 的總和,因為剩餘的兩種方案只是在得到2以後加上一張2面值的硬幣,所以有如下規律:f(n)=f ( n - v[i] )+f( n );即:n的方案數=n已有的方案數+新增一種新的面值的方案數,這裡每次新增的新的面值就乙個,所以f(n- v [i] )是等於f(填乙個新的面值的硬幣)的。

#include

#include

#include

int dp[

50000];

intmain()

}printf

("%d\n"

,dp[n]);

}return0;

}

錢幣兌換問題

problem description 在乙個國家僅有1分,2分,3分硬幣,將錢n兌換成硬幣有很多種兌法。請你程式設計序計算出共有多少種兌法。input 每行只有乙個正整數n,n小於32768。output 對應每個輸入,輸出兌換方法數。sample input 2934 12553 sample ...

錢幣兌換問題

在乙個國家僅有1分,2分,3分硬幣,將錢n兌換成硬幣有很多種兌法。請你程式設計序計算出共有多少種兌法。input 每行只有乙個正整數n,n小於32768。output 對應每個輸入,輸出兌換方法數。sample input 2934 12553sample output 718831 1313776...

錢幣兌換問題

在乙個國家僅有1分,2分,3分硬幣,將錢n兌換成硬幣有很多種兌法。請你程式設計序計算出共有多少種兌法。每行只有乙個正整數n,n小於32768。對應每個輸入,輸出兌換方法數。2934 12553 718831 13137761 參考 正確 include include define ll long ...