私がこれを言わなければならない前に:私は私の英語が下手ですみません...私は学生です.私の先生は私のコースワークのためにパスカルで私に問題を与えました.私はnの大きな値に対して2^nを計算するプログラムを書かなければなりません. ...書きましたが、問題があります...私のプログラムは、30より大きいnの値に対して0を返します...私のコードは以下です...助けてください:::事前に感謝します...
function control(a: integer): boolean;
var
b: boolean;
begin
if (a >= 10) then b := true
else b := false;
control := b;
end;
const
n = 200000000;
var
a: array[1..n] of integer;
i, j, c, t, rsayi: longint; k: string;
begin
writeln('2^n');
write('n=');
read(k);
a[1] := 1;
rsayi := 1;
val(k, t, c);
for i := 1 to t do
for j := 1 to t div 2 do
begin
a[j] := a[j] * 2;
end;
for i := 1 to t div 2 do
begin
if control(a[j]) = true then
begin
a[j + 1] := a[j + 1] + (a[j] div 10);
a[j] := a[j] mod 10;
rsayi := rsayi + 1;
end;
end;
for j := rsayi downto 1 do write(a[j]);
end.