求n!的时间复杂度(只计算一下下面程序的就好)

程序longfun(intn){if(n==0||n==1)return1;elsereturnn*fun(n-1);}... 程序 long fun(int n)
{
if(n==0||n==1)
return 1;
else
return n*fun(n-1);
}
展开
 我来答
听不清啊
高粉答主

2014-03-11 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部
时间复杂度就是O(n)。
这只是用来初学递归时用来帮助理解用的。一般使用时,能用循环解决的就不用递归。
只要用一个循环就可以了的。
long fun(int n)
{
long s=1;
for(int i=1; i<n; i++)
s*=i;
return s;
}
追问
那是老师的作业,就是算上面那个程序的时间复杂度,O(n)是多少算出一个数来,例如O(1),O(n)O(n!)等,需要计算过程啊,不能换程序啊,老师就是让我们算一下每个语句的运行次数啊
追答
楼主所贴程序的时间复杂度就是O(n)的啊。这明白无误。
主程序中调用fun(n)时,总共调用fun函数n次。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式