if (I>0) res=factorial(I-1)*i; else res=1;
return res;
}
3、如何考虑用 PHP 递归算法来解决问题
例:求 s=1+2+3+4+5+6+……+n 本来这个问题我们过去常用循环累加的方法。而这
里如要用递归的方法,必须考虑两点:
1
) 能否把问题转化成递归形式的描述;
2
) 是否有递归结束的边界条件。
显然递归的两个条件都有了:
1
) s(n) =s(n-1)+n
2
) s(1)=1
所以源程序为:
int progression(int n){
int res;
if (n=1 )res=1 else res=progression(n-1)+n;
return res;
}
4、递归的应用
中序遍历二叉树
void inorder (BinTree T){
if (T){
inorder(T->lchild);
printf(“%c”,T->data);
inorder(T->rchild);
}
}