部分和问题

来源:互联网 发布:nba2k17乔丹捏脸数据 编辑:程序博客网 时间:2024/06/03 06:48

题目描述:

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

限制条件:

1<=n<=20

-10^8<=ai<=10^8

-10^8<=k<=10^8




代码:

#include <cstdio>int n, a[10], 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;}int main(){    scanf("%d %d", &n, &k);    for (int i=0; i<n; i++) scanf("%d", &a[i]);    if (dfs(0, 0)) printf("YES");    else printf("NO");}

原创粉丝点击