1 - 2
2 - 3
3 - 2 (но при решение получилось 2.5, но указано, что нужно вводить только целую часть)
4 - 3
5 - 3 (но при решение получилось 3.25, но указано, что нужно вводить только целую часть)
6 - 2 (но при решение получилось 2.25, но указано, что нужно вводить только целую часть)
7 - 1 (но при решение получилось 1.75, но указано, что нужно вводить только целую часть)
Объяснение:
1 - а = 2, б=4, а=2*а+3*b, b=a/2b
a=2*2+3*4=16
b=16/8=2
2- а = 5, б=4, а=2*а+3*b, b=a/2b
a=2*5+3*4=10+12=24
b=24/8=3
3- а = 4, б=4, а=2*а+3*b, b=a/2b
a=2*4+3*4=8+12=20
b=20/8=2.5
4- а = 6, б=4, а=2*а+3*b, b=a/2b
a=2*6+3*4=12+12=24
b=24/8=3
5- а = 7, б=4, а=2*а+3*b, b=a/2b
a=2*7+3*4=14+12=26
b=26/8=3.25
6- а = 3, б=4, а=2*а+3*b, b=a/2b
a=2*3+3*4=6+12=18
b=18/8=2.25
7- а = 1, б=4, а=2*а+3*b, b=a/2b
a=2*1+3*4=2+12=14
b=14/8=1.75
Поскольку операция возведения в степень 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