#include <iostream>
using namespace std;
double y(double a, double b, double c, double x) {
if (c == x && b + c + x != 0)
return ((a + b) * (a + c) * (a + x)) / (b + c + x);
if (c != x && 1 + b != 0 && 1 + a != 0 && a / (1 + b) + b / (1 + a) >= 0)
return sqrt(a / (1 + b) + b / (1 + a));
return -1e9 - 7;
}
signed main() {
double a, b, c, x, ans;
cin >> a >> b >> c >> x;
ans = y(a, b, c, x);
ans == -1e9 - 7 ? cout << "No solution" : cout << ans;
}
Поскольку операция возведения в степень 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