Строки обрабатываются в соответствии со следующим алгоритмом: Заменить в строке все символы A на подстроку AAB
Заменить в строке все символы B на подстроку BBA
Удалить все подстроки AAA
Удалить все подстроки BBB
Подсчитать количество символов в строке. Если оно более 400, завершить исполнение алгоритма, в противном случае перейти на шаг 1.
Пусть исходно была строка BBAB. Определите количество символов A и B в строке, получившейся после обработки. В ответе укажите через пробел два целых числа. Сначала количество символов A, а затем количество символов B.
Поскольку операция возведения в степень 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