按照题目的提示,用SCAU华南农业大学数据结构19071 递归实现指数型枚举_SCAU_Karry的博客-CSDN博客中的算法,稍微改一下代码就完工了;
#include <iostream>
using namespace std;
int n,target,sum=0,cur=1,cot=0;
void dfs( int cur,int sum,int a[])
{
if(cur==n+1)
return ;
// cout << sum +a[cur] << endl;
if(sum+a[cur]==target) cot++;
dfs(cur+1,sum+a[cur]);
dfs(cur+1,sum);
}
int main()
{
cin >> n >> target ;
int a[n+5];
for(int i=1;i<=n;i++) cin >>a[i];
dfs(cur,sum,a[]);
cout << cot;
return 0;
}