java 递归原理_JAVA算法之递归

Ⅰ、三角数字首先我们来看一组数字:1,3,6,10,15,21.....,在这个数列中第n项是由n-1项加n得到的,这个序列中的数字称为三角数字因为他们可以形象化地表示成一个三角形排列。如下图通过上面的图首先我们就可以想到使用循环来查找第n项的数值,下面代码就是从高度为n的列加到高度为1的列int triangle(intn){int total = 0;while(n>0){total= ...
摘要由CSDN通过智能技术生成

Ⅰ、三角数字

首先我们来看一组数字:1,3,6,10,15,21.....,在这个数列中第n项是由n-1项加n得到的,这个序列中的数字称为三角数字因为他们可以形象化地表示成一个三角形排列。如下图

70dbd2cfffda8c0eaf120807b0798a82.png

通过上面的图首先我们就可以想到使用循环来查找第n项的数值,下面代码就是从高度为n的列加到高度为1的列

int triangle(intn){int total = 0;while(n>0){

total= total +n;--n;

}returntotal;

}

上面方法循环了n次,第一次加n,第二次加n-1,一直加到1从而可以算出第n项的值。

使用递归的思想查找第n项的值,此时我们将三角数字看做是第一列和剩余所有列的和,如下图所示,可以写出triangle()方法

43933a0e8fd4d97a51048a70afece08d.png

int triangle(intn){//1. return (n + sumAllColums(n-1))//这里我们可以发现sumAllColums方法做的事情和triangle做的事情一模一样

return (n + triangle(n-1)) //这里我们可以将上面步骤换为此步骤,从而得到求三角数字的递归算法

}

此时上面的递归代码是不会终止的,所以我们的每一个递归代码要有一个我们称之为基值(base case)以防止无限递归导致程序崩溃,所以上面求三角函数代码的基值就是1,

int triangle(intn){if(n==1){return 1; //求三角数字的基值

}else{return (n+triangle(n-1)) ; //进行递归逻辑

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值