深信服18年笔试第三题

#include
using namespace std;
int f(int,int[],int);
int main()
{
 int m,A[10],i,j,temp,sum=0;
 for(i=0;i<10;i++)
  A[i]=0;
 cin>>m;
 for(i=0;i  cin>>A[i];
 f(100,A,m);
 for(i=0;i  if(A[i]==-1)
   sum+=1;
    cout<    for(i=0;i  if(A[i]==-1)
   cout<    return 0;
}
int f(int score,int A[],int m)
{
 int i,j,temp;
 for(i=0;i {
  if(A[i]==-1||A[i]==0)
   continue;
  else
  {
   if(score-A[i]==0)
   {
    A[i]=-1;
    return 1;
   }
   else if(score-A[i]<0)
    continue;
   else if(score-A[i]>0)
   {
    temp=A[i];
    A[i]=-1;
    if(f(score-temp,A,m)==1)
     return 1;
    A[i]=temp;
   }
  }
 }
    return 0;
}

你可能感兴趣的:(笔试题)