java实现递归加注解

递归,a函数一直调用a函数直到根据结束条件语句与等价关系式返回我们想要的结果

递归的实现需要注意三点

1,递归函数的功能是什么(首先要知道这个函数要做什么)

2,递归结束条件语句(因为没有结束语句的话就会一直调用自己)

3,找出函数的等价关系式 ()

例子1:计算n的阶乘

n!=1*2*3*...n;

3!=1*2*3=6;

//2,找到结束语句

所以它的结束语句是n等于1的时候。(当然也可以是等于2的时候,因为不乘1对结果没有影响)

//3,找出等价关系式

数学表示就是1*2*3*...n

代码里面就是n*(n-1)一直乘到n等于1返回当前n也就是1(当然也可以是等于2的时候,因为不乘1对结果没有影响)

    //这个函数要干什么   n的阶乘
    static int f(int n){

        //结束条件语句
        if(n <= 2){
            return n;
        }

        /*像栈一样将第一个放入栈一个一个放入最后取出的时候计算最终得到6!(6的阶乘)
       f(2)=2
       f(3)=f(2)*3
       f(4)=f(3)*4
       f(5)=f(4)*5
       f(5)*6
        */


        //函数的等价关系式子
        // 把f(n)的等价操作写进去
        return f(n-1) * n;
    }

例子2: 找到第n个斐波那契数的值

斐波那契数列的是这样一个数列:1、1、2、3、5、8、13、21

1,写出递归函数实现的功能是什么:找到第n个斐波那契数的值

2,写出结束语句:可以看到当n等于1或者2的时候值是固定的可以作为结束语句。

3,写出等价关系式子也就是数列之间的关系式:n=(n-1)+(n-2).也就是前俩个数的和等于当前这个数。

    //1,这个递归函数要实现什么功能   找到第n个斐波那契数的值
    //例2:斐波那契数列
    // 1 1 2 3 5 8 13  就是当前值等于前俩个值的和
    static int f2(int n){

        //2,写出结束语句
        if(n<=2){
            return 1;
        }
/*
放入6
f2(5)+f2(4)
f2(4)+f2(3)+f2(3)+f(2)
f2(3)+f2(2)+f2(2)+f2(1)+f2(2)+f2(1)+f(2)
f2(2)+f2(1)+f2(2)+f2(2)+f2(1)+f2(2)+f2(1)+f(2)
 */




        //3,写出等价条件语句
        return f2(n-1)+f2(n-2);

    }

引用:为什么你学不会递归?告别递归,谈谈我的经验_递归看不懂-CSDN博客

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值