我需要创建一个递归函数,该递归函数根据用户输入的数字来计数26

例如,如果用户输入26827,则计数为3

它适用于某些数字,而某些数字则无效。有人可以修改我的函数以确保其递归并使用我使用的非常基本的C ++语言。谢谢! (我相信返回类型有问题。)

int count(int n) {
    static int count = 0;
    if (n == 2 || n == 6) count++;
    if ((n % 10 == 2) || (n % 10 == 6)) {
        count++;
        count(num / 10);
    }
    else return count;
}

最佳答案

您不需要静态
这应该工作(注意return c + count(n / 10)行。这是这里的主要递归)

int count(int n)
{
    int c = 0;
    if(n % 10 == 2 || n % 10 == 6)
        c = 1;
    if(n < 10)
        return c;
    return c + count(n / 10);
}

08-04 08:49