递归函数化迭代有什么技巧吗?
哪些递归函数不能简化迭代?如何证明的?
简单的递归函数(只调用一次的)如
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**/
}