计算n的阶乘和2的n次方的算法及复杂度分析 20
哪个高手帮忙啊后天就要考试啦!!!紧急!!!最好发送到wangruifeng0722@126.com谢谢啊!!!...
哪个高手帮忙啊 后天就要考试啦!!!紧急!!!
最好发送到wangruifeng0722@126.com
谢谢啊!!! 展开
最好发送到wangruifeng0722@126.com
谢谢啊!!! 展开
2个回答
展开全部
阶乘很简单啊
function factorial(n:integer):longint;
var
i:integer;
s:longint;
begin
s:=1;
for i := 2 to n do
s:=s*n;
factorial:=s
end;
时间O(n)
空间O(n)
2的n次方就更简单了,一个表达式
s:=exp(ln(2)*n);
如果你怕real和integer/longint的问题,那就该成s:=round(exp(ln(2)*n));
因为2^n=e^(ln2^n)=e^(ln2*n)
时间O(1)
空间O(1)
function factorial(n:integer):longint;
var
i:integer;
s:longint;
begin
s:=1;
for i := 2 to n do
s:=s*n;
factorial:=s
end;
时间O(n)
空间O(n)
2的n次方就更简单了,一个表达式
s:=exp(ln(2)*n);
如果你怕real和integer/longint的问题,那就该成s:=round(exp(ln(2)*n));
因为2^n=e^(ln2^n)=e^(ln2*n)
时间O(1)
空间O(1)
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |