我想写个简单程序,给你两个数n和m,n表示有n个数,然后下一行输入n个数,每个数只能选择一次,统计共有多少种情况使得所选数的和大于等于m;
#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
long long ans;
long long a[50];
int m , n;
void dfs(int i,long long sum)
{
if(i>=m)
{
if(sum>=n)
{
printf("sum == %I64d\n",sum);
ans++;
// return ;
}
return ;
}
dfs(i+1,sum); //要
dfs(i+1,sum+a[i+1]);//不要
}
int main()
{
while(cin>>m>>n)
{
ans = 0;
for(int i = 1;i<=m; i++)
scanf("%I64d",&a[i]);
dfs(0,0);
cout<<ans<<endl;
}
return 0;
}