一个递归算法必须包括什么?

 我来答
拉拉啦啦啦爱度
2021-12-15 · TA获得超过9931个赞
知道答主
回答量:885
采纳率:0%
帮助的人:12.7万
展开全部

一个递归算法必须包括终止条件和递归部分。

一般循环就是:

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))。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式