基本思想是自己调用自己。
可以分解成为“递归”和“递推”两个阶段:①程序反复进入同一个方法,形成递归调用;②当满足某一条件时,结束递归;③程序逐级从方法中返回,形成递推回代。
//递归求n!
class FactorialTest{
static long Factorial(int n){//定义Factorial方法
if(n==1) return 1;
else return n*Factorial(n-1);}
public static void main(String[] arg){//main方法
int n=5;
System.out.println(n+"!="+Factorial(n));}
tips:在递推回代的过程中是由1*2*3*..*n的顺序计算,不是n*(n-1)*...*2*1的顺序