#include <iostream> using namespace std; int res = 0,n; void func(int weight[],int nowIndex,int totalWeight){ if(totalWeight<0)return; if(totalWeight==0)res++; else{ for(int i=nowIndex;i<n;i++){ func(weight,i+1,totalWeight-weight[i]); } } } int main() { cin>>n; int weight[n]; for(int i =0;i<n;i++) cin>>weight[i]; func(weight,0,40); cout<<res<<endl; } // 64 位输出请用 printf("%lld")
递归