简单Free Pascal题目

来源:百度知道 编辑:UC知道 时间:2024/05/19 09:17:30
求a的b次方

0<a<1000
a的长度不超过10位,有1个小数点
b是整数,1《=b《=25

高精度*低精度

for i:=1 to b do
a:=a*a;
把A定义成实形

用高精度
var
a:array[1..5000]of integer;
i,j,n,len,len1:integer;
k1,k2,x:longint;
begin
write('x^n=');readln(x,n);
fillchar(a,sizeof(a),0);
len:=0;
len1:=trunc(ln(x)/ln(10))+1;
a[1]:=1;
for i:=1 to n do begin
len:=len+len1;
k1:=0;
for j:=1 to len do begin
k2:=x*a[j]+k1;
k1:=k2 div 10;
a[j]:=k2 mod 10;
end;
end;
for i:=trunc(n*ln(x)/ln(10))+1 downto 1 do write(a[i]);
writeln;
readln;
end.

用高精度!!!