首页 > 代码库 > 递归简论

递归简论

递归的两个基本法则

  1、基准情形。必须总要有某些基准的情形,它们不用递归就能求解。

  2、不断推进。递归的调用必须总能朝着一个基准情形推进。

  例如:

    public static int f(int x){

      if(x==0)

        return 0;    //这两行为基准情形。

      else

        return 2*f(x-1)+x*x;

    }

使用递归打印输出整数(可以用归纳法证明):

  public static  void printOut(int n){

    if(n>=10)

      printOut(n/10);

    printDigit(n%10);  //printDigit(4)将输出4

  }

  注意:使用mod例程非常耗时,因为n%10=n-(n/10)*10;

递归的其他法则:

  3、设计法则。假设递归调用都能运行。(不必追踪具体的递归调用的序列)

  4、合成效益法则。再求解一个问题的同一实例时,切勿在不同的递归调用中做重复性工作。

 

递归简论