在乙個國家僅有1分,2分,3分硬幣,將錢n兌換成硬幣有很多種兌法。請你程式設計序計算出共有多少種兌法。
input
每行只有乙個正整數n,n小於32768。
output
對應每個輸入,輸出兌換方法數。
sample input
2934sample output12553
718831第一種思想:他是要求完全揹包的分配方案數,和原先學習的完全揹包不太一樣。13137761
思想就是每次更改乙個硬幣的面值(當然因此剩餘的錢要相應減少),比如4的話:
可以有3種情況:
1,1,1,1
1,1 ,2
2 ,2
然後你會發現2的話是:
1,1 2
4可以看作是只換成1的方案數 加上 2能換成任意面值的方案數 的總和,因為剩餘的兩種方案只是在得到2以後加上一張2面值的硬幣,所以有如下規律:f(n)=f ( n - v[i] )+f( n );即:n的方案數=n已有的方案數+新增一種新的面值的方案數,這裡每次新增的新的面值就乙個,所以f(n- v [i] )是等於f(填乙個新的面值的硬幣)的。
#include#include#define ll long long
using namespace std;
ll s[32769];
//完全揹包,或者思維,還不太懂
void dp()
}int main()
printf("%d\n", s);
}return 0;
}
錢幣兌換問題
problem description 在乙個國家僅有1分,2分,3分硬幣,將錢n兌換成硬幣有很多種兌法。請你程式設計序計算出共有多少種兌法。input 每行只有乙個正整數n,n小於32768。output 對應每個輸入,輸出兌換方法數。sample input 2934 12553 sample ...
錢幣兌換問題
在乙個國家僅有1分,2分,3分硬幣,將錢n兌換成硬幣有很多種兌法。請你程式設計序計算出共有多少種兌法。每行只有乙個正整數n,n小於32768。對應每個輸入,輸出兌換方法數。2934 12553 718831 13137761 參考 正確 include include define ll long ...
錢幣兌換問題
這道題目就需要學習一種思路 他是要求完全揹包的分配方案數,和原先學習的完全揹包不太一樣。思想就是每次更改乙個硬幣的面值 當然因此剩餘的錢要相應減少 比如4的話 可以有3種情況 1,1,1,1 1,1 2 2 2 然後你會發現2的話是 1,12 4可以看作是只換成1的方案數 加上 2能換成任意面值的方...