錢幣兌換問題

2021-08-22 10:29:47 字數 839 閱讀 6251

在乙個國家僅有1分,2分,3分硬幣,將錢n兌換成硬幣有很多種兌法。請你程式設計序計算出共有多少種兌法。

input

每行只有乙個正整數n,n小於32768。

output

對應每個輸入,輸出兌換方法數。

sample input

2934

12553

sample output

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能換成任意面值的方...