递归
package com.qiqi.method;
public class Demo05 {
/*
递归结构包括两个部分:
递归头:什么时候不调用自身方法。如果没有头,将陷入死循环
递归体:什么时候需要调用自身方法。
阶乘:
1! 1
2! 2*1
3! 3*2*1
4! 4*3*2*1
5! 5*4*3*2*1
7! 7*6*5*4*3*2*1
*/
public static void main(String[] args) {
System.out.println(f(3));
}
public static int f(int i){
if (i == 1){
return 1; //此处为默认值 即初始值
}else {
return i*f(i-1); //每次减一 当i不等于1时走这里 3*(3-1)=3*2=6 然后重新走i==1 但2不等于1 3*(2-1)=3*1=3
}
}
}
/*
外面的i是输出的值 括号里面的i-n(任意数) 是在main方法里输入的值
5*(5-1) = 20
20*(4-1)= 60
60*(3-1)= 120
120*(2-1)= 120
*/