首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >您应该如何处理递归?

您应该如何处理递归?
EN

Stack Overflow用户
提问于 2012-03-28 08:39:28
回答 6查看 5.7K关注 0票数 10

我目前在学校学习递归,当有许多递归调用时,我很难思考方法。我只想问你应该如何看待递归,因为我知道跟踪每一步的方法调用会变得太单调乏味。

不是跟踪每个递归调用,我们简要介绍的是通过归纳来思考递归,但我遇到的问题是如何将归纳应用于数学以外的情况。例如,如果有一个方法可以像这样递归地打印数字:

代码语言:javascript
运行
复制
public void blah(int n)
{
    for (int i = 0; i < n; i++)
      blah(i);
    System.out.print(n);
}

我很难思考打印出来的是什么,我也看不出归纳在这里有什么关系(如果它可以在任何地方使用,请原谅我的无知)。

但我想我真正的问题是,如何在不跟踪每个方法调用的情况下处理递归?最好的做法是仅仅看到基本情况并向后工作吗?(但即使这样,我想我对发生的事情也会变得模糊)。

EN

Stack Overflow用户

发布于 2012-03-28 08:49:18

您可以找到关于在here上进行递归思考的一个很好的解释

从链接

为递归function.

  • Write写一个原型,一个注释,描述什么函数does.

  • Determine基本情况(可能有多个),以及它的solution(s).

  • Determine什么小问题(或多个问题)要解决。如果这使您更容易理解,请将解决方案保存到较小的

局部变量的问题(例如,.ASSUME()示例中的小问题)

  • 使用较小问题的解决方案来解决较大问题。(如果此操作不正确,则较小的

问题也会被错误地计算,因此,假设

上一步将失败)。

票数 5
EN
查看全部 6 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9899657

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档