Advertisement

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)

还没有任何评论哟~