=== 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)
1. Вся предложенная информация – декларативная, она содержит информацию об определениях (а, в, г) или свойствах (б, д) объектов. Очень близок к процедурной информации вариант д, однако на мой взгляд, это всё ещё декларативная информация, сообщение относилось бы к процедурной информации, если его бы записали так: для умножения простых дробей нужно перемножить их числители и знаменатели.
2. Декларативная – а и в (к варианту в то же замечание, что и в первом вопросе, если нужен только один ответ, тогда лучше записывать только а). Варианты б, г, д – процедурная информация, они рассказывают, как достичь цели: удалить текущий файл, сократить дробь или найти корни квадратного уравнения.