码迷,mamicode.com
首页 > 其他好文 > 详细

递归简论

时间:2017-05-02 11:53:19      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:序列   static   ==   round   调用   ati   bsp   设计   基本法   

递归的两个基本法则

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

 

递归简论

标签:序列   static   ==   round   调用   ati   bsp   设计   基本法   

原文地址:http://www.cnblogs.com/Wan-notes/p/6794984.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!