- 递归是一种常见的算法思路,在很多算法中都会用到。比如:深度优先搜索(DFS:Depth First Search)等。
- 递归的基本思想就是“自己调用自己”。
递归结构包括两个部分:
- 定义递归头。 解决:什么时候不调用自身方法。如果没有头,将陷入死循环,也就是递归的结束条件。
- 递归体。 解决:什么时候需要调用自身方法。
import java.util.Scanner;
//递归结构
public class RecursionTest {
public static int factorial(int n){
if(n==1){
return 1;
}else{
return n*factorial(n-1);
}
}
public static void main(String[] args) {
long d1 = System.currentTimeMillis();
Scanner scanner=new Scanner(System.in);
System.out.println("请输入一个整数以求它的阶乘:");
int n=scanner.nextInt();
long d2 = System.currentTimeMillis();
System.out.println("它的阶乘值为:"+factorial(n));
System.out.println("总耗时为:"+(d2-d1));
}
}