重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章给大家分享的是有关java递归算法怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
成都创新互联专注于企业成都营销网站建设、网站重做改版、石狮网站定制设计、自适应品牌网站建设、H5场景定制、成都做商城网站、集团公司官网建设、外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为石狮等各大城市提供网站开发制作服务。
递归算法设计的基本思想是:
对于一个复杂的问题,把原问题分解为若干个相对简单类同的子问题,继续下去直到子问题简单到能够直接求解,也就是说到了递推的出口,这样原问题就有递推得解。
在做递归算法的时候,一定要把握住出口,也就是做递归算法必须要有一个明确的递归结束条件。这一点是非常重要的。其实这个出口是非常好理解的,就是一个条件,当满足了这个条件的时候我们就不再递归了。
关键要抓住的是:
(1)递归出口
(2)地推逐步向出口逼近
递归就是方法自身调用自身的行为,注意要写好递归头,也就是什么时候退出递归,
避免出现死循环。
实例1,通过递归打印1~100
package com.lanhuigu.base; public class CursionTest { private static int i = 0; /** * 递归打印1到100 */ public static void testCursion01() { i++; // 自增 if (i <= 100) { // 小于等于100时回调,否则跳出回调,避免死循环 System.out.println(i); testCursion01(); // 回调: 自身调用自身 } else { System.out.println("Game Over!"); } } public static void main(String[] args) { testCursion01(); // 打印1~100 } }
实例2,通过递归计算某个数的阶乘
package com.lanhuigu.base; public class CursionTest { /** * 递归计算某个数的阶乘 */ public static int testFactorial(int n) { if (n == 1) { return 1; } else { return n*testFactorial(n-1); } } public static void main(String[] args) { System.out.println(testFactorial(5)); // 计算5的阶乘 } }
关于递归计算阶乘,递归内存分析结构图:
先放长线,最后收线,然后把鱼拉上岸。
感谢各位的阅读!关于“java递归算法怎么用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!