c++ - 对这个递归示例有点困惑

标签 c++ recursion

int gcd (int a, int b)
{
   if (b == 0)
      return a;
   if (a == 0)
      return b;
   return gcd (b, a % b);
}

gcd(5, 15)的结果是什么?

我最终得到了 15,但我不确定它是否正确,所有的循环让我感到困惑。

最佳答案

这是按顺序进行的递归调用

gcd(5, 15)
gcd(5, 5) # Because 5 % 15 = 5
gcd(5, 0)

所以gcd(5, 15)的返回值为5

关于c++ - 对这个递归示例有点困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43775599/

相关文章:

c++ - size_type 可以大于 std::size_t 吗?

c++ - 如何在 C++ 中使用数组演示内存错误

c++ - 在网格中找到最佳路径的最大长度

algorithm - 查找 Domino Tiling 的重复项

recursion - 有没有更有效的方法来编写这个递归过程?

c++ - Qt信号/插槽问题

c++ - Fstream 的 tellg/seekg 返回值高于预期

c++ - 特征矩阵的大括号初始化

使用递归的 JavaScript 排列

sql - 如何在 SQL SERVER 2005 中使用递归表值函数