该函数接受一个整数数组,它是长度,以及两个整数N1和N2 它应该返回一个整数,该整数描述您可以对数组的N1个元素求和以获得等于N2的总和的方式。 如何实现此功能?
答案 0 :(得分:0)
使用递归。例如。大概是这样的:
int findCount(int *array, int length, int N1, int N2) {
int count = 0;
if(N1 == 1) {
for(int i = 0; i < length; i++) {
if(array[i] == N2) {
count++;
}
}
} else {
for(int i = 0; i < length; i++) {
count += findCount(&array[i+1], length-i-1, N1 - 1, N2 - array[i]);
}
}
return count;
}
注意:如果数组中不能包含零或负数,则可以使用if(array[i] < N2) count += findCount(&array[i+1], length-i-1, N1 - 1, N2 - array[i]);
来改进。