问题描述
给定N个整数,要求选出K个数,使得选出的K个数和为SUM
#include <iostream> using namespace std; int a[105]; int n,k,sum; int count; void dfs(int w,int g,int s){ if(w==n){ //证明已经到达最后一个 if(g==k && s==sum){ count++; } return; } dfs(w+1,g,s); dfs(w+1,g+1,s+a[w]); } int main(){ cin>>n>>k>>sum; for(int i=0;i<n;i++){ cin>>a[i]; } dfs(0,0,0); cout<<count; return 0; }