您的位置:首页 > 其它

部分和问题-dfs穷举

2016-05-19 14:37 197 查看
给定整数a1,a2,..am判断是否可以从中选出若干个数字,使得他们的和恰好为n

我们要判断每个数字选或者不选

#include <iostream>
using namespace std;
const int maxn=10005;
int a[maxn];
int n;
int sum;
bool dfs(int i,int cursum){
if(i==n){
return cursum==sum;
}
if(dfs(i+1,cursum+i)) return true;
if(dfs(i+1,cursum)) return true;
return false;
}
int main(int argc, char const *argv[])
{
while(cin>>n){
for(int i=1;i<=n;i++){
cin>>a[i];
}
cin>>sum;
dfs(0,0);
}
/* code */
return 0;
}


给出一个数字n,写出1+..=n的所有加法形式
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: