会pascal的帮个忙

来源:百度知道 编辑:UC知道 时间:2024/06/13 13:28:12
program gaojingdujiecheng(input,output);
const max=255;
type arr=array[0..max] of integer;
var n,q,k:integer;
a:arr;

procedure muliti(var a:arr;n,k:integer);
var i,m:integer;
begin
m:=0
for i:=1 to a[0] do
begin
inc(m,a[i]*n);
a[i]:=m mod 10;
m:=m div 10;
end;
while m<>0 do
begin
inc(a[0]);
a[a[0]]:=m mod 10;
m:=m div 10;
end;
while a[i]=0 do
k:=k+1;
dec(a[0]);
for i:=1 to a[0] do
a[i]:=a[i+1];
end;

begin
writeln('please input n to caculate n!');
readln(q);
fillchar (a,sizeof(a),0);
k:=0;
a[2]:=4;
a[1]:=2;
a[0]:=2;
for n:=5 to q do
multi;
writeln(n,'!=');
for q:=a[0] downto 1 do
write('x10^',k);
readln;
readln;
end.
我的意思是用高精度数来计算阶乘,末尾每出现1次0就除以10,并在K中记录次数,最终输出,可是编译时总有问题,大虾帮忙看看是什么问题
改成了
program gaojingduj

第十行 m:=0 后面少了分号
第39行 拼写错了 multi 应当为 muliti(你自己的三个参数忘记写了,不高兴写用无参过程+全局变量)

我是说括号里的参数是要写的……

在重新演算