温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2020-06-01 23:18:17 来源:亿速云 阅读:291 作者:鸽子 栏目:编程语言

1、递归函数的概念

 

递归是一种针对使用简单的循环难以编程实现的问題,提供优雅解决方案的技术。简单来说,递归方法是调用自身的方法。在编程语言中,函数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)区别:

 

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


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI