// 求一个集合中任取若干个元素相加和等于目标值最多有多少中取法
// 抱歉,忘了作者是谁了
int number(int array[],int length,int target,bool isEmpty=true)
{
assert(length>0);
if(length==1)
{
return (target==array[0])+(!target&&!isEmpty);
}
else
{
return number(array+1,length-1,target-array[0],false)
+number(array+1,length-1,target,isEmpty);
}
}
评论