递归

什么是递归?

递归是指把大问题化成小而相似的问题,然后小问题变化为更小的问题,直到能很容易解决。

递归必要条件

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));
    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。