递归的使用

递归就是指在一个方法体中调用方法自身的形式。


使用原则:

1)、有明确递归的规律和退出条件。

2)、使用递归必须使问题简单化而不是复杂化。

3)、当递归可能会影响程序的执行性能时,应当使用递推代替。


例如我们可以利用递归来计算指定数值的阶乘并返回。

我们知道:

5! = 5 * 4 * 3 * 2 * 1;
4! = 4 * 3 * 2 * 1;
3! = 3 * 2 * 1;
2! = 2 * 1;
1! = 1;

于是我们推出

5!  =  5 * 4!;
4!  =  4 * 3!;
3!  =  3 * 2!;
2!  =  2 * 1!;
1!  =  1;


public class TestJiecheng{

    //自定义成员方法根据参数指定的数值计算阶乘并返回
    int fa(int n){ 
 
         //递归
         if(n == 1){
             return 1;
         }
         return n * fa(n-1); //return 5*fa(4); =>return 5*4*fa(3);
         //return 5 * 4 * 3 * fa(2);   => return 5 * 4 * 3 * 2 * fa(1);
         //fa(1) = 1;
    }

    public static void main(String[] args){
  
         TestJiecheng tj = new TestJiecheng();

         int num = tj.fa(5);
         System.out.println("num = " + num); //120   
         
    }
}






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值