背包问题

来源:互联网 发布:马太效应读后感知乎 编辑:程序博客网 时间:2024/05/17 08:13
/*************************************     有一背包能放总重物S,设有N件物品,      重量分别为W1,W2.。。。  希望从这N件物品里选出若干件,  恰好能放到背包里,即所选物品和为S. 此程序能求出其中一组解。***************************************/#include <stdio.h>#define N 7#define S 15int w[N+1] = {0, 1, 4, 3, 4, 5, 2, 7};int knap(int s, int n){if(s==0) return 1;if(s<0 ||(s>0 && n<1)) return 0;if(knap(s-w[n],n-1)){printf("%4d",w[n] );return 1;}return knap(s,n-1);}main(){if( knap(S, N)) printf("ok!\n" );else printf("N0!\n");}


 

原创粉丝点击