作业帮 > 数学 > 作业

试写出求递归函数F(n)的递归算法,并消除递归

来源:学生作业帮 编辑:作业帮 分类:数学作业 时间:2024/04/29 16:13:27
试写出求递归函数F(n)的递归算法,并消除递归
F(n) = n+1 当n=0
F(n) = nF(n/2) 当n>0
用递归我就会,消除递归用栈来实现我就不会,求高手用栈实现,不要递归的.
你先了解这个函数的作用,结果就是 n*(n/(2^1)*(n/(2^2))*(n/(2^3))*(n/(2^4))……*1
n*(n/2)*(n/4)*(n/8)*……*1
while( n >= 0)
{
if(n !=0)
{ push();//将n压入栈内
n = n/2
}
else
{
push(n+1);//或者是push(1);
}
}
double result = 1;
while(栈不为空)
{
result = result * pop();//取出值并相乘
}
printf("%lf",result);
这个是伪代码哈,自己去实现