Предмет: Информатика, автор: Мандарино4ка

3. Написать программу вычисления xy, не используя функцию возведения в степень (только цикл). X,y вводятся с клавиатуры

Ответы

Автор ответа: PopCop312
0
var x,y,p:integer;
begin
read(x,y);
p:=x;
for y:=y downto 2 do
  p*=x;
writeln(p);
end.
Автор ответа: PopCop312
0
потому что цикл идет от у и до 2 включая оба значения
Автор ответа: Мандарино4ка
0
не понимаю..почему не до 1, ведь степень и 1 может быть
Автор ответа: Аноним
0
Это так написано, чтобы запутать аргентинских шпионов)))
Автор ответа: PopCop312
0
сначала был вариант без дополнительного Р, но потом подумал, что будет сложно...
Автор ответа: Мандарино4ка
0
ПОЧЕМУ ОТ ДВУХ ИДЕТ СЧЕТЧИК КТО ОБЪЯСНИТ
Автор ответа: Аноним
0
Тривиальное решение.

var
  i,r,x,y:integer;
begin
  Write('Вычисление х в степени y, введите х,y: ');
  Readln(x,y);
  r:=x;
  for i:=2 to y do r:=r*x;
  Writeln('Результат: ',r)
end.

Тестовый прогон:
Вычисление х в степени y, введите х,y: 2 10
Результат: 1024

Вариант для любителей начинать циклы с единицы.
var
  i,r,x,y:integer;
begin
  Write('Вычисление х в степени y, введите х,y: ');
  Readln(x,y);
  r:=1;
  for i:=1 to y do r:=r*x;
  Writeln('Результат: ',r)
end.

Автор ответа: Мандарино4ка
0
да, считает все правильно, но я до сих пор не понимаю, почему от 2 до у
Автор ответа: Аноним
0
Потому что если степень равна 1, то умножать не надо, x в первой равен x.
Автор ответа: Аноним
0
Задание начального значения счетчика цикла 2 приведет к тому, что если y=1, цикл выполняться не будет ни разу и результат r останется равным х. Что и надо было.
Похожие вопросы