java递归算法原理

来源:互联网 发布:mac project 编辑:程序博客网 时间:2024/05/21 23:32
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


图片