问题 C: 神奇的口袋


#include <cstdio>


using namespace std;


int n1;
int nums[99];

int help(int i, int sum) {

    if (sum == 0) return 1;
    if (sum < 0 || i > n1) return 0;
    return help(i + 1, sum - nums[i]) + help(i + 1, sum);
}

int main() {


    while (scanf(" %d", &n1) != EOF) {

        for (int i = 0; i < n1; ++i) {
            scanf("%d", &nums[i]);
        }
        printf("%d\n", help(0, 40));

    }
    return 0;
}

posted @ 2020-02-15 22:27  ailinal  阅读(247)  评论(0)    收藏  举报