PASCAL求 2的100次方

来源:百度知道 编辑:UC知道 时间:2024/05/18 06:26:24
加油

program cf;
var a:array[1..31]of longint;
i,j,len:longint;
begin
fillchar(a,sizeof(a),0);
a[1]:=1;len:=1;
for i:=1 to 100 do begin
for j:=1 to len do
a[j]:=a[j]*2;
for j:=1 to len-1 do
if a[j]>=10 then begin
a[j+1]:=a[j] div 10+a[j+1];
a[j]:=a[j] mod 10;
end;
while a[len]>=10 do begin
a[len+1]:=a[len] div 10;
a[len]:=a[len]mod 10;
inc(len);
end;
end;
for i:=len downto 1 do write(a[i]);
writeln;
end.

不能用longint,可以把2^100分成4份,即2^25*2^25*2^25*2^25。2^25在longint范围里,用高精乘将他们乘起来。

var a:char;
begin
a:='1267650600228229407496703205376'
writeln(a);
end.

因为2^100 = 1.2676506002282 * 10^30 ,超出了最大整型longint的范围,所以用高精度乘法。一楼的做法是对的。

program ll(文件名);
var a,i:longint;
begin
a:=2;
for i:=1 to 99 do
a:=a*a;
writeln(a);
end.

有事交流:710533287

power(a,n)就是求a的n次方