求整数n(n>=0)阶乘的算法如下,其时间复杂度:

Intfact(intn){if(n<=1)return1;returnn*fact(n-1);}A.O(log2n)B.O(n)C.(alog2n)D.O(n2)... Int fact(int n)
{if (n<=1)
return 1;
return n*fact(n-1);
}
A. O(log2n) B. O(n) C . (a log2n) D. O(n2)
展开
 我来答
simonncc
高粉答主

2018-03-31 · 关注我不会让你失望
知道大有可为答主
回答量:776
采纳率:100%
帮助的人:12.4万
展开全部

#include<stdio.h

int main(void) 

int i,s=1; 

printf("Please input a intdata:"); 

scanf("%d",&i); 

for(;i>1;i--) 

s*=i; 

printf("%d\n",s); 

return 0; 

}

这是一个递归程,可以看出每递归一次n的规模小一,所是结果是线性的。

1、阶乘指从1乘以2乘以3乘以4一直乘到所要求的数。例如所要求的数是4,则阶乘式是1×2×3×4,得到的积是24,24就是4的阶乘。 例如所要求的数是6,则阶乘式是1×2×3×……×6,得到的积是720,720就是6的阶乘。例如所要求的数是n,则阶乘式是1×2×3×……×n,设得到的积是x,x就是n的阶乘。任何大于1的自然数n阶乘表示方法: n!=1×2×3×……×n  或 n!=n×(n-1)!   5!=5*4*3*2*1=120。

2、所要求的数是4,则阶乘式是1×2×3×4,得到的积是24,24就是4的阶乘。 例如所要求的数是6,则阶乘式是1×2×3×……×6,得到的积是720,720就是6的阶乘。例如所要求的数是n,则阶乘式是1×2×3×……×n,设得到的积是x,x就是n的阶乘。在表达阶乘时,就使用“!”来表示。如n阶乘,就表示为n!

百度网友28b4182
推荐于2017-11-25 · TA获得超过7218个赞
知道大有可为答主
回答量:4847
采纳率:100%
帮助的人:1782万
展开全部
B
这是一个递归程,可以看出每递归一次n的规模小一,所是结果是线性的。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式