C语言用递归来解决背包问题
发布时间
阅读量:
阅读量
C语言递归方法求解背包问题
- 利用C语言中的递归技术处理背包问题,编程环境为Visual Studio 2019
-
- 上述问题:
-
- 上述代码:
-
C语言递归方法求解背包问题,编译环境vs2019
上问题:
十、背包问题的求解
假设有容量总和为T的背包,以及n个物品,这些物品的体积分别表示为w1 , w2 , … , wn。问题在于是否可以从这n个物品中选择部分物品,使得它们的体积总和恰好等于T,即满足w1 +w2 + … + wn=T,并且需要找出所有符合该条件的组合。例如:当T=10时,各物品的体积集合为{1,8,4,3,5,2},此时可以得到以下四组符合条件的解:
(1,4,3,2)
(1,4,5)
(8,2)
(3,5,2)。
上代码:
#include<stdio.h>
int answer[100] = { 0 };//保存结果
int p = 0;//answer的指针
void bag(int *nums, int locate, int total, int len, int big) {
for (int i = locate; i < len; i++) {
total += answer[p++]
全部评论 (0)
还没有任何评论哟~
