输入n个数,这几个数中的数是否能够使和为k
#include <iostream>
using namespace std;
//输入n个数,这几个数中的数是否能够使和为k
int a[100];
int n,k;
//能够从这个函数了解到计算到第i个数时,当前总和为sum时,是否能够使最后和为k
bool dfs(int i,int sum){
if(i==n) return sum==k; //和已经是k了,可以!
if(dfs(i+1,sum)) return true; //不算a[i]的情况下
if(dfs(i+1,sum+a[i])) return true; //算上a[i]
return false;
}
void solve(){
if(dfs(0,0)) printf("yes");
else printf("no");
}
int main(){
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i];
}
cin>>k;
solve();
return 0;
}