【java基础:递归】递归recursion!

短命女 2022-06-06 12:49 307阅读 0赞

递归:函数自身直接或者间接地调用到了自身。

那么什么时候使用递归呢?

一个功能在被重复使用,并每次使用时,参与运算的结果与上一次调用有关,此时可以用递归来解决问题。

注意:1、递归一定要明确条件,否则容易死循环,栈内存溢出。

2、一定要注意递归的次数,如果次数太多,容易导致栈内存溢出。

下面用一个简单的例子来展示递归:

  1. package recursion;
  2. public class RecursionDemo {
  3. public static void main(String[] args) {
  4. /*
  5. * 采用递归求和的方法
  6. */
  7. int num=9,sum;
  8. sum=method_1(num);
  9. System.out.println(sum);
  10. //--------------------------------------------
  11. /*
  12. * 下面展示一个递归无限循环(直到爆内存)的例子
  13. */
  14. show();//将爆出:StackOverflowError
  15. }
  16. public static void show() {
  17. display();
  18. }
  19. public static void display() {
  20. show();
  21. }
  22. public static int method_1(int num) {
  23. if(num==1)
  24. return 1;
  25. return num+method_1(num-1);
  26. }
  27. }

发表评论

表情:
评论列表 (有 0 条评论,307人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Recursion

    递归 递归都可以用循环实现,反之不一定 递归应用 : DFS 深度优先搜索、前中后序二叉树遍历等等 递归需要满足的三个条件 1> 一个问题的解可以分解为几个子问题的

    相关 DNS BIND之recursion

    一般客户机和服务器之间属递归查询,当客户机向DNS服务器发出请求后,若DNS服务器本身不能解析,则会向另外的DNS服务器发出查询请求,得到结果后转交给客户机。主机向本地域名服务

    相关 基础思想

    有个朋友刚刚在学习java,刚学了一个月,他虽然脑袋很大(不是针对所有人,只是针对他),但是说自己总是在解题的时候找不到思路。他在学习时遇到了几道关于递归的小题,今天简单聊一下