我需要创建一个递归函数,该递归函数根据用户输入的数字来计数2
和6
。
例如,如果用户输入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);
}