day7 递归

1.概述

* 递归 : 就是在当前方法中,调用自己(当前方法)
 * 
 * 基本思想 : 以此类推
 * 
 * 递归和迭代是等价的,而迭代就是循环,所以递归也是重复做某件事
 * 三要素 : 初始值,终止条件,步长
 * 
 * 如果循环能做到的,就不要使用递归,因为递归效率低,比较耗费内存
 * 
 * 应用场景 : 
 * 
 *         一般树状结构,需要使用递归来完成
 *         比如菜单目录,每一层目录结构,都是一个循环,两层就需要嵌套循环,比如不知道有多少子目录结构呢?  循环就不行了
 * 

2.常见异常

public static void main(String[] args) {
        // TODO Auto-generated method stub
        m1();

    }
    public static void m1(){
        // 没有终止条件
        m1();
    }


3.案例

求5+4+3+2+1

public static void main(String[] args) {
        // TODO Auto-generated method stub
        int result=sum(5);
        System.out.print(result);

    }
    public static int sum(int n){
        if (n == 1) {
            return 1;
        }else{
            return n + sum(n-1);
        }
    }

用递归求斐波那契数列

public static long yan(int n){
        if(n==1||n==2){
            return 1;
        }
        else{
            return yan(n-1)+yan(n-2);
            
        }
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值