2019深信服研发出试卷笔试题


递归解决

#include<iostream>

using namespace std;
int f(int,int[],int);
int main()
{
int m,A[10],i,sum=0;
for(i=0;i<10;i++)
A[i]=0;
cin>>m;
for(i=0;i<m;i++)
cin>>A[i];
f(100,A,m);
for(i=0;i<m;i++)
if(A[i]==-1)
sum+=1;
cout<<sum<<endl;
for(i=0;i<m;i++)
if(A[i]==-1)
cout<<i+1<<endl;
return 0;
}
int f(int score,int A[],int m)
{
int i,temp;
for(i=0;i<m;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;
}

相关文章:

  • 2021-10-06
  • 2021-09-17
  • 2021-11-18
  • 2021-11-06
  • 2021-06-14
  • 2021-11-28
  • 2021-11-14
  • 2021-08-20
猜你喜欢
  • 2021-10-11
  • 2021-09-05
  • 2021-09-11
  • 2021-12-25
  • 2021-11-17
  • 2021-04-25
  • 2021-12-22
相关资源
相似解决方案