pascal 问题 exp

来源:百度知道 编辑:UC知道 时间:2024/05/11 13:43:43
计算多项式的值exp(x)=1+x+(x^2)/(2!)+(x^3)/(3!)+……(x^i)/(i!)
(abs((x^i)/(i!))<=10^-10)
不能用该函数直接表示,用while和if语句循环达到
用高手请指教3Q!!!!!!!!!!!!!!!!~~~~~~~~~~~~

var i,k:integer;
n,m,x,x1,temp,j:real;

begin
readln(n);

j:=1;
for i:=1 to 10 do j:=j*10;
j:=1/j;
i:=0;
m:=1;

while true do
begin
inc(i);
x:=n;
x1:=1;
for k:=2 to i do begin x:=x*n;x1:=x1*k; end;
temp:=x/x1;
if temp<j then break;
m:=m+x/x1
end;

writeln(m,exp(n));

end.
//结果和EXP(X)的结果差不多
//但是X不能很大
//调试成功