number 出现在数组中的次数

mit*_*221 4 c++ algorithm recursion

我在一本 C++ 书中找到了一个练习,上面写着“编写一个函数来计算一个数字在数组中出现的次数。”。一切正常,程序运行正常。但是练习也说这个函数应该是递归的。

如何使递归函数像这样工作?

#include <iostream>

int count(int number, int array[], int length)
{
    int counter = 0; 
    for(int i = 0; i < length; i++)
        if(array[i] == number)
            counter++;
    return counter;
}

int main()
{
    int numbers[10] = {3,4,1,2,4,5,6,5,4,5};
    int number_to_search = 5;
    std::cout << number_to_search << " appears "
              << count(number_to_search, numbers, 10)
              << " times in the array.";
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

mvp*_*mvp 5

使用这个count功能:

int count(int number, int array[], int length) {
    if (length == 0) return 0;
    return (number == *array) + count(number, array+1, length-1);
}
Run Code Online (Sandbox Code Playgroud)