第一行输入n,k,sum
第二行输入n个正整数
在n个数中找出k个数使他们的和为sum
输出方案数;
输入
5 3 9
1 2 3 4 5
输出
2
#include<iostream>
using namespace std;
int n,k,sum,ans;
int a[40];
void dfs (int i,int cnt,int s){
if (i==n){
if (cnt==k&&s==sum){
ans++;
}
return ;
}
dfs (i+1,cnt,s);
dfs (i+1,cnt+1,s+a[i]);
}
int main ()
{
//输入数据
cin>>n>>k>>sum;
for (int i=0;i<n;i++){
cin>>a[i];
}
ans=0;
dfs (0,0,0);
cout<<ans<<endl;
return 0;
}
欢迎关注我的公众号:王同学的蓝桥杯训练营