java递归算法原理

xiaoxiao2021-02-28  131

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<=1) return 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

转载请注明原文地址: https://www.6miu.com/read-22343.html

最新回复(0)