【问题标题】:searching examples of functions that can be written as recursion with base cases搜索可以编写为带有基本情况的递归的函数示例
【发布时间】:2015-01-17 16:32:18
【问题描述】:

我想在 c 中的一些迭代示例上使用递归。我不知道何时会有一个有意义的基本案例(返回某些内容的基本案例)。

我的问题是,除了编写递归函数来计算斐波那契数列之外,我看不出在哪些其他情况下会真正使用基本情况。

您能否给我一些问题示例,我可以将函数编写为迭代函数或使用基本情况的递归函数。

【问题讨论】:

  • 阶乘是经典的
  • 你能写一个没有有基本情况的递归函数吗?对我来说似乎是无限下降(或者,更实际的是,堆栈溢出 [相当恰当,如果我可以这么说的话])。
  • 有阿克曼函数。你可以考虑河内塔。您可以考虑将整数转换为字符串(有递归版本)。有快速排序和相关算法。

标签: c recursion iteration


【解决方案1】:

表达式求值是递归的一种经典案例。

如果您的表达式有子表达式,您将递归地评估每个子表达式。如果您的表达式是常量或标识符,那么您已经达到了基本情况。相比之下,迭代方法要求您将部分结果推送到堆栈中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-26
    • 2015-12-21
    • 2013-10-11
    • 2015-03-26
    • 2022-01-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多