帮忙解pascal难题~~~

来源:百度知道 编辑:UC知道 时间:2024/09/22 02:07:48
帮忙解pascal难题~~~
高精度阶乘:输入一个数n,并进行阶乘。(用字符串和函数解决!n超过longint的范围!)
样例输入:
4 {4*3*2*1}
输出:
24
有问题可以提出

我把主要程序给你
字符串读入工作自己来编吧
const maxlen=100;
var i,j,n,c,t:integer;
sum,fac:array[1..maxlen+1]of integer;
begin
readln(n);
fillchar(sum,sizeof(sum),0);
fillchar(fac,sizeof(fac),0);
fac[1]:=1;
c:=0;{c:存放当前进位值}
for j:=1 to maxlen do
begin
t:=fac[j]*I+c;{t:当前位乘积}
fac[j]:=t mod 10;{fac[j]:当前位结果}
c:=t div 10;{c:本位向高位的进位值}
end;
for i:=1 to n do
begin
c:=0;
for j:=1 to maxlen do
begin
t:=fac[j]*i+c;
fac[j]:=t mod 10;
c:=t div 10;
end;c:=0

该题为典型的高精度乘法。程序见下:
program abc;
const max=40;{最大位数为40*4 可根据情况变}
type
arr=array[1..max] of longint;
var
a,c:arr;
n,m,b,i,j,k,la,lb,lc:integer;
h,jin:longint;
s:string;

begin
readln(n);
fillchar(a,sizeof(a),0);
a[1]:=1;j:=1;
for k:=n downto 2 do begin
fi