program Vozrasr;
var
AGE: integer;//Переменная возраста
begin
writeln('Введите любое число от 1 до 120');
Readln(AGE); //Ввод возраста
if (AGE < 1) or (AGE > 120) then
begin
writeln('ERROR!')
end
else
begin
case AGE of //для чисел от 11 до 20 создаем отд-ый кейс
11..20: Writeln('ответ: Мне ', AGE, ' лет');
Else //иначе если они не входят в диапазон от [11..20], то выполняется второй кейс
begin
case AGE mod 10 of //делим на 10 и получаем остаток =
1: Writeln('ответ: Мне ', AGE, ' год');
2..4: Writeln('ответ: Мне ', AGE, ' года');
0, 5..9: Writeln('ответ: Мне ', AGE, ' лет');
end;
end;
end;
end;
end.
=== Python 3.8.3 ===
def fastExp(b, n):
def even(n):
if n % 2 == 0:
return True
return False
if n == 0:
return 1
if even(n):
#Можно было написать return fastExp(b, b/2) ** 2, но операцию возведения в степень использовать нам запретили.
res = fastExp(b, n/2)
return res*res
return b*fastExp(b, n-1)
def main():
base = float(input())
exp = int(input())
print(fastExp(base, exp))
if __name__ == "__main__":
main()
Предложенные тесты проходит. Сам алгоритм быстрого возведения в степень реализован в виде функции fastExp(b, n)