Java的递归函数是什么?怎么实现?

1、递归函数的概念

成都创新互联专注为客户提供全方位的互联网综合服务,包含不限于网站建设、网站设计、镇安网络推广、微信小程序开发、镇安网络营销、镇安企业策划、镇安品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联为所有大学生创业者提供镇安建站搭建服务,24小时服务热线:18980820575,官方网址:www.cdcxhl.com

 

递归是一种针对使用简单的循环难以编程实现的问題,提供优雅解决方案的技术。简单来说,递归方法是调用自身的方法。在编程语言中,函数Func(Type a,……)直接或间接调用函数本身,则该函数称为递归函数。递归函数不能定义为内联函数。

 

2、实现递归的三要素

 

(1)一定有一种可以退出程序的情况;

 

(2)总是在尝试将一个问题化简到更小的规模;

 

(3)父问题与子问题不能有重叠的部分。

 

3、Java递归算法案例

 

Java中的递归函数如果没终止条件会造成死循环,所以递归代码里要有结束自调自的条件。接下来通过一个案例来学习如何使用递归算法。

 

package QianFeng03;

 

//阶乘(递归算法)

 

public class FactorialTest {

   

public static void main(String[] args){

       

int result = factor1( 10);

       

System.out.println(result);

       

int result1 = factor(10);

       

System.out.println("递归算法:内存消耗大容易内存溢出"+result1);

   

}

   

//---------------递归算法,方法本身调用自己----------------------

   

public static int factor(int num){

       

if (num==1)

           

return 1;

       

return num*factor(num-1);

   

}

 

 //---------------普通计算----------------------

 

public static int factor1(int num){

       

int result = num;

       

int i= num-1;

       

do{

           

result = result*i;

           

i--;

       

}while (i>1);

       

return result;

   

}

 

}

4、递归函数与循环的关系:

 

(1)联系:

 

都是通过控制一个变量的边界(或者多个),来改变多个变量为了得到所需要的值,而反复而执行的;都是按照预先设计好的推断实现某一个值求取;(请注意,在这里循环要更注重过程,而递归偏结果一点)

 

(2)区别:

 

递归通常是逆向思维居多,“递”和“归”不一定容易发现;而循环从开始条件到结束条件,包括中间循环变量,都需要表达出来。简单的来说就是:用循环能实现的,递归一般可以实现,但是能用递归实现的,循环不一定能。因为有些题目①只注重循环的结束条件和循环过程,而往往这个结束条件不易表达;②只注重循环的次数而不注重循环的开始条件和结束条件。


名称栏目:Java的递归函数是什么?怎么实现?
网站网址:http://pwwzsj.com/article/gcppoj.html