Составить алгоритм и программу, определяющую последнюю цифру числа a (в n степени) , где...

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

Составить алгоритм и программу, определяющую последнюю цифру числа a (в n степени) , где натуральные числа n, а вводятся.
Ответ на паскале


Информатика (109 баллов) | 36 просмотров
0

Алгоритм нужен короткий, но малоэффективный, или длинный, но очень эффективный?

0

как удобно вам

0

Мне все равно

0

Ну ладно, короткий

Дан 1 ответ
0 голосов
Правильный ответ

Обратим внимание, что при возведении натурального числа a в натуральную степень n последняя цифра результата определяется, как значение последней цифры d числа a, возведенного в степень n
Поскольку операция возведения в степень n сводится к умножению n раз числа самого на себя, то получая при очередном умножении многоразрядное число, мы можем снова принимать в расчет только его младшую цифру.
Это позволяет построить цикл на n умножений, каждый раз получая младшую цифру при помощи операции mod.

var
  a:longint;
  n,d,i,p:integer;
begin
  Write('Введите натуральное число a: '); Read(a);
  Write('Введите натуральную степень n: '); Read(n);
  a:=a mod 10; p:=a;
  for i:=2 to n do
    begin a:=a*p; a:=a mod 10 end;
  Writeln('Последняя цифра равна ',a)
end.

Тестовое решение:
Введите натуральное число a: 154
Введите натуральную степень n: 9
Последняя цифра равна 4


(142k баллов)