n!在dephi中怎么写算法
如题 问题点数:20、回复次数:4Top
1 楼ICMGDCHN(忘记感动)回复于 2004-12-03 22:50:04 得分 20
递归:
function fact(n:integer):integer;
begin
if (n=0) or (n=1) then
result:=1
else result:=n*fact(n-1);
end;
非递归:
function fact(n:integer);integer;
var
i:integer;
tmp:integer;
begin
tmp:=1;
for i:= n downto 1 do
tmp:=tmp*i;
result:=tmp;
end;Top
2 楼ppayun(~云彩)回复于 2004-12-03 22:53:46 得分 0
阶乘有专门的算法,楼上的写法数字稍大就溢出了。
以前论坛中有关于阶乘算法的讨论,你找找看。Top
3 楼ICMGDCHN(忘记感动)回复于 2004-12-03 23:35:46 得分 0
算法本来就这样,具体实现的话,比如DES,RSA的实现也是这个算法,只不过是把结果放在一个字符数组里保存而已.至于大数运算,我倒也挺想讨论一下的Top
4 楼designonline(meetweb)回复于 2004-12-04 12:18:20 得分 0
是啦。。数字大的话怎么解决,换成float??Top




