java递归算法原理

public class Test{
public static int result(int parameter){
if(parameter<=1) return 1;
int number = parameter*result(parameter-1); 
return number;
}
public static void main(String[]args{
int result = result(5);
System.out.println(result);
}
}

运行结果是:120



public class Test{
    public static int result(int parameter){
          if(parameter<=1return 1// 判断parameter是否小于等于1,如果不成立则递归调用
          int number = parameter*result(parameter-1);  // 将parameter-1继续调用函数 反复如此,直至条件成立。                                            
             return number;
     }
    public static void main(String[]args{
          int result = result(5);
          System.out.println(result);
  }
}  



它的执行原理是如下这样的:

result(5) 初始时 ==》进入函数体判断parameter是否小于等于1,此时parameter等于5,条件不成立,执行parameter*result(parameter-1) 即5*result(5-1),程序反复执行。。。

5*result(5-1)

4*result(4-1)

3*result(3-1)

2*result(2-1) 到此 parameter等于1符合条件 函数返回1,层层返回。即:

result(1) =1

2*result(1)=2*1=2

3*result(2)=3*2=6

4*result(3)=4*6=24

5*result(4)=5*24=120


图片

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值