提交时间:2024-04-06 22:21:58
运行 ID: 142309
#include<iostream> using namespace std; int k(int s,int n,int a[]) { if(s==0)//如果背包满了,返回1 return 1; if(s<0||(s>0&&n<1))//如果背包重量大于s或者待放入的物品没了 return 0; if(k(s-a[n-1],n-1,a)) { cout<<a[n-1]<<endl; return 1; } else return k(s,n-1,a); } int main() { int s,n,a[100],t; cin>>s>>n; for(int i=0;i<n;i++) cin>>a[i]; t=k(s,n,a); if(t==0) cout<<"Failed!"<<endl; return 0; }