题解 | #数组分组#搬运工,留个记录,递归解法,看答案都看得懵逼
数组分组
http://www.nowcoder.com/practice/9af744a3517440508dbeb297020aca86
#include<iostream> #include<vector> #include<math.h> using namespace std; vector<int> elsevec; int n,m,sum3,sum5,dis0; bool f(int i,int dis){ if(i==elsevec.size()){ return abs(dis)==dis0; }return (f(i+1,dis+elsevec[i])||f(i+1,dis-elsevec[i])); //**重点** } int main(){ while(cin>>n){ sum3=sum5=0; elsevec.clear(); int t=n; while(t--){ cin>>m; if(m%5==0){ sum5+=m; }else if(m%3==0){ sum3+=m; }else{ elsevec.push_back(m); } }dis0=abs(sum5-sum3); if(f(0,0)){ cout<<"true"<<endl; }else cout<<"false"<<endl; } return 0; }