求PASCAL一段程序.

来源:百度知道 编辑:UC知道 时间:2024/05/29 18:26:00
软件:TURBO PASCAL 7.0
程序:
E=1+1÷2!+1÷3!+1÷4!+……+1÷100!;
求E的值。

Program DoE;
var
i,j:integer;
E:real;
function nmul(integer:n):integer;
nmul:=1;
for j:=1 to n do
nmul:=nmul*j;
begin
E:=0;
for i:=1 to 100 do
E:=E+1/nmul(i);
write(E)
end.

program jcsh(input,output);
var
i,j,k:integer;
s:real;
begin
s:=1.0;
for i:= 2 to 100 do
begin;
k:=1;
for j:=1 to i do
begin;
k:=k*j;
end;
if k<>0 then begin
s:=s+(1/k);
end;
end;
writeln(s);
end.

千万不要先算n!
否则数据溢出就造成了错误,就算是实型的范围也太小了。
所以应该算1/(n!)
1/(n!)=1/1/2/3/4.../n
这样就不会有错误了
program jcsh(input,output);
var
i,j:integer;
s,k:real;
begin
s:=1.0;
for i:=2 to 100 do
begin
k:=1;
for j:=1 to i do
k:=k/j; {k=1/n!}
s:=s+k;
end;
writeln(s:0:15);
end.

program aaa;
var
e:re