c - 这个递归函数如何返回正确答案?

标签 c function recursion definition

我想知道这个函数是如何返回 4 的,这是正确的答案,每次函数调用自身时它都会重置 res 变量。 num = 2367319

int func(int num)
{
    int res = 0;
    if (num > 0)
        res = (num % 10 % 3 == 0 ? 1 : 0) + func(num / 10);

    return res;
}

最佳答案

res 不是“重置”。而是为每个递归调用创建一个名为 res 的新局部变量。

我建议您添加一些 printf() 语句以查看此函数的工作原理。

关于c - 这个递归函数如何返回正确答案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59865789/

相关文章:

c++ - 来自 MSVC extern "C"的故事

c - 如何在宏(或替代方案)中#define

php - 确定邮政编码邻近度/范围的 MySQL 函数

python - 将函数列表(带参数)作为 python 中的输入

c 函数指针

c - 为什么 C 中的递归会向后打印?

PHP - 从 MySQL 数据创建嵌套数组

c - C 中的递归 union 定义

java - 要计算给定行字符串中字符出现的次数。谁能指出错误在哪里?代码编译正确

c - 新观察者是否会看到旧的未处理事件?