我想知道这个函数是如何返回 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/