Другие языки программирования и технологии
составить программу вычисление 2**64(два в шестьдесят четвёртой степени), на паскале, с помощтью циклов
составить программу вычисление 2**64(два в шестьдесят четвёртой степени), на паскале, с помощтью циклов
var i: shortint;
r : longint; (или word, как у вас называется 4-байтное целое)
Begin
r := 1;
for i:=1 to 64 do r shl 1;
writeln(r);
readln;
End.
r : longint; (или word, как у вас называется 4-байтное целое)
Begin
r := 1;
for i:=1 to 64 do r shl 1;
writeln(r);
readln;
End.
Dmitriy Zotov
Переполнение случится.
*** Багдатик
не работаут в фри пакале
На Delphi. FreePascal вроде должен съесть =)
program LongLongInt;
//{$APPTYPE CONSOLE}
type
TLongLongInt = packed array of 0..9;
function Add(a, b: TLongLongInt): TLongLongInt;
var
i: Integer;
begin
SetLength(Result, Succ((Length(a) + Length(b) + Abs(Length(a) - Length(b))) div 2));
SetLength(a, Succ((Length(a) + Length(b) + Abs(Length(a) - Length(b))) div 2));
SetLength(b, Succ((Length(a) + Length(b) + Abs(Length(a) - Length(b))) div 2));
Result[0] := 0;
for i := Low(Result) to Pred(High(Result)) do
begin
Result[i] := Result[i] + (a[i] + b[i]) mod 10;
Result[Succ(i)] := (a[i] + b[i]) div 10;
end;
while (Result[High(Result)] = 0) do
SetLength(Result, Pred(Length(Result)));
if Length(Result) = 0 then
SetLength(Result, 1);
end;
function Sqr(a: TLongLongInt): TLongLongInt;
begin
Result := Add(a, a);
end;
var
i: Integer;
a: TLongLongInt;
begin
SetLength(a, 1);
a[0] := 2;
for i := 2 to 64 do
a := Sqr(a);
Write('2^64 = ');
for i := High(a) downto Low(a) do
Write(a[i]);
ReadLn;
end.

program LongLongInt;
//{$APPTYPE CONSOLE}
type
TLongLongInt = packed array of 0..9;
function Add(a, b: TLongLongInt): TLongLongInt;
var
i: Integer;
begin
SetLength(Result, Succ((Length(a) + Length(b) + Abs(Length(a) - Length(b))) div 2));
SetLength(a, Succ((Length(a) + Length(b) + Abs(Length(a) - Length(b))) div 2));
SetLength(b, Succ((Length(a) + Length(b) + Abs(Length(a) - Length(b))) div 2));
Result[0] := 0;
for i := Low(Result) to Pred(High(Result)) do
begin
Result[i] := Result[i] + (a[i] + b[i]) mod 10;
Result[Succ(i)] := (a[i] + b[i]) div 10;
end;
while (Result[High(Result)] = 0) do
SetLength(Result, Pred(Length(Result)));
if Length(Result) = 0 then
SetLength(Result, 1);
end;
function Sqr(a: TLongLongInt): TLongLongInt;
begin
Result := Add(a, a);
end;
var
i: Integer;
a: TLongLongInt;
begin
SetLength(a, 1);
a[0] := 2;
for i := 2 to 64 do
a := Sqr(a);
Write('2^64 = ');
for i := High(a) downto Low(a) do
Write(a[i]);
ReadLn;
end.

Да не парьте себе и людям мозг!
Тупо перемножением в PascalABC.NET — 1 картинка.
На второй картинке код ещё короче и быстрее ;–)


Тупо перемножением в PascalABC.NET — 1 картинка.
На второй картинке код ещё короче и быстрее ;–)


Если скажете, какой тип вы собираетесь использовать для хранения результата, --имеет смысл разговаривать дальше.
Вот такая двоичная штука получается:
$ echo "obase=2;2^64" | bc
10000000000000000000000000000000000000000000000000000000000000000
Или в шестнадцатеричной:
$ echo "obase=16;2^64" | bc
10000000000000000
Вот такая двоичная штука получается:
$ echo "obase=2;2^64" | bc
10000000000000000000000000000000000000000000000000000000000000000
Или в шестнадцатеричной:
$ echo "obase=16;2^64" | bc
10000000000000000
*** Багдатик
логические
Похожие вопросы
- помогите пожалуйста..паскаль..составить программу вычисления суммы неповторяющихся элементов одномерного массива
- Программу возведения числа в четвертую степень за 2 операции Pascal
- Как можно составить программу на языке Pascal для вычисления 100!-2 в степени 100?
- Помогите составить программу на паскале!
- Составьте программы и проверьте их выполняемость на Паскале
- найти все семизначные числа, которые делятся на 15 и записываются только цифрами 0 и 1. Составить программу на паскале
- помогите пожалуйста составить программу в паскале
- Составить программу в паскаль
- Напишите пожалуйста код простейшей программы вычисления значения 2 в степени N.
- Пожалуйста, будтье так добры, помочь решить задчаку в Паскале: Составьте программу, печатающую последнее слово в ...