编程求1000!后面有多少个零(Pascal语言)

来源:百度知道 编辑:UC知道 时间:2024/05/17 06:36:53
我要Pascal的 表C语言的
我要自己编的 正确的!!
就是求1*2*3*4*……*1000 求多少个“0”

var
a:array[1..3000]of integer;
c,n,i,j,f:integer;
begin
n:=1000;
fillchar(a,sizeof(a),0);
a[3000]:=1;
f:=0;
for i:=2 to n do
for j:=3000 downto 1 do
begin
a[j]:=a[j]*i+f;
f:=a[j] div 10;
a[j]:=a[j] mod 10;
end;
i:=3000;j:=0;
while a[i]=0 do
begin
dec(i);
inc(j);
end;
writeln(j);
end.

另一种方法

function caculateRecursive(n:longint):longint;
begin
if n<5 then
exit(0)
else
exit n/5+caculateRecursive(n/5);
end;

直接调用这个函数

40238726 00770937 73543702 43392300 39857193 74864210 71463254 37999104
29938512 39862902 05920442 08486969 40480047 99886101 97196058 63166687
29948085 58901323 82966994 45909974 24504087 07375991 88236277 27188732
51977950 59509952 76120874 97546249 70436014 18278094 64649629 10563938
87437886 48733711 91810458 25783647 8499770