由于pascal没有幂函数(与其他语言不同),我被要求创建一个幂函数。我所做的是这样的:
function pow(x,n:integer):integer;
begin
pow:=1;
if n = 0 then
pow:=1
else if n=1 then
pow:=x
else if n > 0 then
pow:=x*pow(x,n-1)
else
pow:=-x*pow(x,abs(n)-1);
end;
现在在主体中,我有一个for循环来显示从0到8的8的幂:
for i:=0 to 8 do
writeln('8^',i,'=',pow(8,i));
问题是,如果我等于5,我得到以下结果:如果我等于负数,并且如果我大于5,那么我得到0。
8 5是2 15,其达到的integer
大小限制导致整数溢出。为避免这种情况,您可以改用a longint
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句