什么是递归?
递归是指把大问题化成小而相似的问题,然后小问题变化为更小的问题,直到能很容易解决。
递归必要条件
1.迭代前后,两问题之间有明确关系式,且两问题具有相同的形式。
2.递归有结束条件。
func(condition){
if(end){
// return solution
}
func(lessCondition)
}
举例:计算 n!
关系式:factorial(n!)=n*factorial(n-1)
结束条件:0!=1
public class Factorial {
int n;
public static int factorial(int n) throws Exception{
if(n<0){
throw new Exception("Negative number error!");
}
if(n==0){
return 1;
}
return n*factorial(n-1);
}
public static void main(String[] args) throws Exception {
System.out.println(factorial(-4));
}
}
网友评论