部分和问题(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;
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步