По данному действительному числу a и целому неотрицательному n вычислите величину an.
Входные данные
Вводятся 2 числа - a и n.
Выходные данные
Необходимо вывести значение an.
Я знаю как написать код в принципе, но как работать с действительными числами понятия не имею
Python
Питон задача для решения
Если речь о возведении в степень, то:
Правильное решение:
print(float(input()) ** int(input()))
Бессмысленный но достаточно эффективный костыль:
a, n, p = float(input()), int(input()), 1.0
while n:
~~if n % 2: p *= a
~~n //= 2
~~a *= a
print(p)
Крайне медленный говнокод, который от тебя ожидают:
a, n, p = float(input()), int(input()), 1.0
for _ in range(n): p *= a
print(p)
P.S. "Ответы" режут форматирование - проверять надо, что именно опубликовалось.
Правильное решение:
print(float(input()) ** int(input()))
Бессмысленный но достаточно эффективный костыль:
a, n, p = float(input()), int(input()), 1.0
while n:
~~if n % 2: p *= a
~~n //= 2
~~a *= a
print(p)
Крайне медленный говнокод, который от тебя ожидают:
a, n, p = float(input()), int(input()), 1.0
for _ in range(n): p *= a
print(p)
P.S. "Ответы" режут форматирование - проверять надо, что именно опубликовалось.
Запись an в математике как бы намекает на то что переменная 'a' умножается на переменную 'n'. Это вас не наводит на какие-либо светлые мысли?
По-моему тоже an - это вроде a·n (a умножить на n), а не aⁿ (a в степени n), так что в одну строчку:
a,n=input('a n » ').split(); print(float(a)*int(n))
И со степенью в одну строчку:
a,n=input('a n » ').split(); print(float(a)**int(n))
А с "медленной" функцией степени, с которой всё работает очень быстро, так:
def pow(x, n):
p = 1
for i in range(n): p *= x
return p
a, n = input('a n » ').split()
print(pow(float(a), int(n)))
Функцию степени сто́ит ускорять только для больши́х показателей степени n, например, миллиард или квинтиллион, но зачем? Хотим мы, скажем, вычислить число e:
е=lim(n→∞)(1+¹/n)ⁿ=2,718281828459...,
тогда берём n=1000000000000000, возводим 1+¹/n в степень n так называемым "быстрым эффективным методом" и получаем... 3,035, а вовсе даже не число e как таковое! Понятно, что в данном случае лучше не "степень ускорять и оптимизировать", а попробовать какие-нибудь другие подходы. ʘ‿ʘ
P.S. Кстати, у меня вот "ответы" ничего не "режут", никакое форматирование! (•‿•)
a,n=input('a n » ').split(); print(float(a)*int(n))
И со степенью в одну строчку:
a,n=input('a n » ').split(); print(float(a)**int(n))
А с "медленной" функцией степени, с которой всё работает очень быстро, так:
def pow(x, n):
p = 1
for i in range(n): p *= x
return p
a, n = input('a n » ').split()
print(pow(float(a), int(n)))
Функцию степени сто́ит ускорять только для больши́х показателей степени n, например, миллиард или квинтиллион, но зачем? Хотим мы, скажем, вычислить число e:
е=lim(n→∞)(1+¹/n)ⁿ=2,718281828459...,
тогда берём n=1000000000000000, возводим 1+¹/n в степень n так называемым "быстрым эффективным методом" и получаем... 3,035, а вовсе даже не число e как таковое! Понятно, что в данном случае лучше не "степень ускорять и оптимизировать", а попробовать какие-нибудь другие подходы. ʘ‿ʘ
P.S. Кстати, у меня вот "ответы" ничего не "режут", никакое форматирование! (•‿•)
Похожие вопросы
- Питон. Задача на "шары в разных кучах". Но имхо даже понятие не имею как тут решать. Ибо много условий и проверок
- Задача для решения)
- Решение задачи по программированию (желательно питон) Сложность O(квадрат(n))
- Решить две задачи на питоне. Помогите пожалуйста
- Питон Тьютор, решение задачи с объяснением
- Задача по питону для начинающих
- Python, решение задач на питоне
- Не могу решать задачи на целочисленную арифметику в питоне.
- Как понять логику решения следующей задачи "ДЛЯ НАЧИНАЮЩИХ"?
- нужно написать задачи на питоне