开发者社区> 问答> 正文

什么是递归,何时使用

似乎经常在邮件列表和在线讨论中出现的主题之一是获得计算机科学学位的优点(或缺乏优点)。 反对党似乎反复提出的一个论点是,他们已经进行了多年编码,并且从未使用过递归。

所以问题是:

什么是递归?

什么时候使用递归?

人们为什么不使用递归?

展开
收起
游客ufivfoddcd53c 2020-01-06 12:01:24 880 0
1 条回答
写回答
取消 提交回答
  • 递归的基本思想是把规模大的问题转化为规模小的相似的子问题来解决。 在函数实现时,因为解决大问题的方法和解决小问题的方法往往是同一个方法,所以就产生了函数调用它自身的情况。 另外这个解决问题的函数必须有明显的结束条件,这样就不会产生无限递归的情况了。 举个例子,我们来计算阶乘n! = 1 x 2 x 3 x ... x n

    public static void main(String[] args) {
            int num = factorial(10);
            System.out.println(num);
        }
        private static int factorial(int n){
            if(n == 1) {
                return 1;
            }
            return n * factorial(n - 1);
        }
    
    2020-01-06 17:02:56
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载