专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »C 教程 » 尾递归:尾状递归的应用 »正文

尾递归:尾状递归的应用

来源: 发布时间:星期四, 2009年2月12日 浏览:64次 评论:0


    尾状递归(Tail recursion)是C/C编程中编写递归例程特殊方式它可以最小化时间和内存它将变量值存储在临时内存中而不是使用堆栈来存储中国自学编程网www.zxbc.cn下面是使用尾状递归个例子:

/* 用常规递归计算阶乘 */
 fact( n)
{
  (n<0)
     0;
  
    (n0)
       1;
  
       n*fact(n-1);
}


当n=4时计算过程是 fact(4)->4*Fact(3)->3*fact(2)->2*fact(1)->1 1->2*1->3*2->4*6=24

/* 用尾状递归计算阶乘 */

 fact( n, a)
{
  (n<0)
     0;
  
     (n0)
         1;
     
         fact(n-1,n*a);
}

当n=4时其计算过程是 fact(4,1)->fact(3,4)->fact(2,12)->fact(1,24)->24 
0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: