实验要求
给定n个不同的正整数集合w={w1, w2, …, wn)和一个正整数W,要求找出w的子集s,使该子集中所有元素的和为W。
输入要求
首先数据一行数据,包含两个整数W(1 <= W <= 10000)和n(1 <= n <= 20),分别表示和以及整数的个数。
第二行包含n个整数,依次表示第i个整数的值w(0 <= w[i] <= 100)。
输出要求
如果子集存在,则输出满足条件的子集的个数,否则输出“no",并换行。
测试用例
输入 | 输出 |
---|---|
31 4 | 2 |
11 13 24 7 |
代码
#include <iostream>
#include <stdio.h>
#define MAXN 21
using namespace std;
int W, n;
int w[MAXN] = {
0};