Напишите программу ** языке Паскаль, которая будет вычислять значения 2 в степени 16, 18,...

0 голосов
40 просмотров

Напишите программу на языке Паскаль, которая будет вычислять значения 2 в степени 16, 18, 27 за минимальное возможное число умножений


Информатика (32 баллов) | 40 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

2¹⁶ = (((2²)²)²)²;
a = 2×2 ⇒ 2²
b = a×a ⇒ 2⁴
b = b×b ⇒ 2⁸
c = b×b ⇒ 2¹⁶ ⇒ вывод

2¹⁸ = 2¹⁶×2² ⇒ c×a ⇒ вывод
2²⁷ = 2¹⁶×2⁸×2²×2 ⇒ c×b×a×2 ⇒ вывод

// PascalABC.NET 3.2, сборка 1344 от 22.11.2016
begin
  var a:=2*2;
  var b:=a*a;
  b:=b*b;
  var c:=b*b;
  Writeln('2^16=',c,', 2^18=',a*c,', 2^27=',2*a*b*c)
end.

Результат
2^16=65536, 2^18=262144, 2^27=134217728

(150k баллов)