首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

递归函数化迭代有什么技能吗

2013-01-11 
递归函数化迭代有什么技巧吗?哪些递归函数不能简化迭代?如何证明的?简单的递归函数(只调用一次的)如int f(

递归函数化迭代有什么技巧吗?
哪些递归函数不能简化迭代?如何证明的?
简单的递归函数(只调用一次的)如

int f(int n)
{
    if(n>0)
        f(n-1);
    return n;
}
我会很简单的变成一个循环,但是一个调用两次以上的递归函数
int f(int *a,int b,int c)
{
  if(b<c)
  {
    int p=c/2;
    f(a,b,p);
    f(a,p+1,c);
  }
  /**do**/
}
或者更复杂的递归改如何改写呢?
求大神介绍多年改写经验!!!!!谢谢!!!!!
[解决办法]

int f(int *a,int b,int c)
{
  if(b<c)
  {
    int p=c/2;
    f(a,b,p);
    f(a,p+1,c);
  }
  /**do**/
}


拿这个来说,如果当a,b,p给定后,f(a,b,p)导致的结果是固定不变的,就可以写成循环
尾递归可以消除,别的嘛...

热点排行