部分和问题(dfs)


undefinedundefined

给定整数a1,a2,a3...an 判断是否可以从中选出若干数 使他们的和恰好为0

复制代码
#include<stdio.h>
#include<stdlib.h>
int a[10000];
int n, k;
bool dfs(int i,int sum) {
    if (i == n)
        return sum == k;
    if (dfs(i + 1, sum))    return true;
    if (dfs(i + 1, sum + a[i]))
        return true;
    return false;
}

void solve() {
    if (dfs(0, 0)) 
        printf("YES");
    else
        printf("no");
    
}

int main() {
    scanf("%d", &n);
    int c = n;
    while (c--) {
        scanf("%d", &a[c]);
    }
    scanf("%d", &k);
    solve();
    //system("pause");
    return 0;
}
复制代码

 

posted @   风间6324  阅读(133)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示