乙個包可以裝mg的東西,有n個物品,體積分別是a1,a2....an,要求選擇的物品體積正好是m並且每個物品只能選擇一次,一共有多少種不同的湊法?
思路:如果m是0,則乙個物品都不用選,return 1;
如果所有的物品都選上了,還不夠m就return 0;
否則 如果不選第n個物品則選n-1個物品組成m加上選了第n個物品,那麼就只需要選n0-1個組成m-a[n];
遞迴程式如下:
#includeusing namespace std;
int a[30];
int n;
int f(int m,int n)
int main()
cout<
好像還有點問題,待解決........
#include#includeusing namespace std;
int a[30],f[40][30];
int n;
int main()
f[0][0]=1;
for(int m=1;m<=40;++m)
} cout<
409,動態規劃求不同路徑
乙個機械人位於乙個 m x n 網格的左上角 起始點在下圖中標記為 start 機械人每次只能向下或者向右移動一步。機械人試圖達到網格的右下角 在下圖中標記為 finish 問總共有多少條不同的路徑?例如,上圖是乙個7 x 3 的網格。有多少可能的路徑?示例 1 輸入 m 3,n 2 輸出 3 解釋...
有多少不同的面值組合
1 題目要求 題目描述 某人有8角的郵票5張,1元的郵票4張,1元8角的郵票6張,用這些郵票中的一張或若干張可以得到多少種不同的郵資?輸入 題目沒有任何輸入 輸出 按題目的要求輸出可以得到的不同郵資的數目 2 分析這個題目,可以將其歸結為陣列去重的問題。可以使用計數排序來實現。題目中總共的面值為 8...
1087 有多少不同的值
1087 有多少不同的值 20 分 當自然數 n 依次取 1 2 3 n 時,算式 n 2 n 3 n 5 有多少個不同的值?注 x 為取整函式,表示不超過 x 的最大自然數,即 x 的整數部分。輸入給出乙個正整數 n 2 n 10 4 在一行中輸出題面中算式取到的不同值的個數。20171480 i...