递归定义:
程序调用自身的编程技巧称为递归( recursion)
递归的缺陷:
递归调用会占用大量的系统堆栈,内存耗用多,在递归调用层次多时速度要比循环慢的多,所以在使用递归时要慎重。任何能用递归解决的问题也能使用迭代解决,不强调效率问题时,可以采用递归;在要求高性能的情况下尽量避免使用递归,递归调用既花时间又耗内存。
递归求阶乘示例:
public class Test {
public static void main(String[] args) {
System.out.printf("%d阶乘的结果:%s%n", 10, factorial(10));
}
/** 求阶乘的方法*/
static long factorial(int n){
if(n==1){//递归头
return 1;
}else{//递归体
return n*factorial(n-1);
}
}
}