一个递归算法必须包括什么?
1个回答
展开全部
一个递归算法必须包括终止条件和递归部分。
一般循环就是:
int multi = 1;
if (x <=1) return (1);
for(int i=1;i<=x;i++)multi = multi*i;
return(multi);
递归把x!看作x*(x-1)!
int multi(int x){if(x==0||x==1) return 1;else return x*multi(x-1);}
尾部递归:
而不对其再加运算。尾部递归与循环是等价的,而且在一些语言(如Scheme中)可以被优化为循环指令。
在这些语言中尾部递归不会占用调用堆栈空间。以下Scheme程序同样计算一个数字的阶乘,但是使用尾部递归:(define (factorial n) (define (iter product counter) (if (> counter n) product (iter (* counter product) (+ counter 1)))) (iter 1 1))。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询