題目:現有1元、2元、5元、10元、20元面值不等的鈔票,問需要20元錢有多少種找錢方案,列印所有的結果!
分析:此題如果沒要求列印結果,只要求列印出一共有多少種方案,那麼可以直接用動態規劃,參考揹包問題——「01揹包」及「完全揹包」裝滿揹包的方案總數分析及實現
如果要求列印所有結果,那遞迴是再好不過的了。
[html]view plain
copy
#include
<
iostream
>
#include <
string.h
>
using namespace std;
//20塊錢找零,零錢由1、2、5、10四種幣值
#define max_value 20
int array = ;
int next[max_value] = ;
void segnum(int nsum, int* pdata, int ndepth)
int i
= (ndepth
== 0 ? next[0] : pdata[ndepth-1]);
for(; i <
= nsum;)
} void showresult(int array,int nlen)
測試**如下
[cpp]view plain
copy
intmain()
Python遞迴 找零錢
無法解決某些情況,例如存在21元的零錢 def fun n count 0 while n 25 n n 25 count count 1 while n 10 n n 10 count count 1 while n 5 n n 10 count count 1 while n 0 n n 1 c...
硬幣找零 遞迴備忘錄解法
問題很常見吧!就是給定乙個錢數n,然後給定乙個k種硬幣 然後輸入硬幣的面值,然後求出最少的硬幣來湊出這個錢數 例如 11塊 有三種硬幣 1 2 5 那麼最少數就是 3 兩個5和乙個1 include include include include using namespace std intdp ...
找零問題之遞迴演算法求解改進Python
寫在前面,一定要弄清楚,字典的傳遞傳的是引用,是位址!這個小問題浪費了我將近兩個小時。等號複製,dict.copy 和copy模組的deepcopy 方法,這三個要搞清楚。前面提到了遞迴方法解決找零問題,但是當數值非常大,或者紙幣面值種類很多時,程式跑起來就會花費很多時間。我的筆記本配置比較低,面值...