Задача - Название в значительной степени подводит итог: возведите целое число x в степень x , где 0<x
.
Ограничения:
- Использование в экспоненциации,
exp()
,ln()
, а также любые иные полномочия , связанные с языком встроенные модули, какpow()
,x^x
,x**x
запрещено. - Вы можете предположить, что данное целое число соответствует ограничениям языка программирования по вашему выбору.
Тестовые случаи:
Input | Output
---------------
2 | 4
3 | 27
5 | 3125
6 | 46656
10 | 10000000000
Это код-гольф , поэтому выигрывает самая короткая программа в байтах.
code-golf
math
arithmetic
мохнатый
источник
источник
0
и указать ожидаемый результат (0
или1
или либо). Наконец, обработка отрицательных целых чисел была бы хорошим дополнением к задаче.1
для0^0
. Тем не менее,Foundation
+ Swift возвращает 00
и вместо этого указал это0<x
в начале . Я также снял ограничение, что код не должен выдавать ошибки; это должно быть само собой разумеется. Не стесняйтесь откатиться при необходимости.Ответы:
APL (Дьялог) , 4 байта
Для x x принимает x в качестве левого аргумента и x в качестве правого аргумента.
Попробуйте все случаи онлайн!
×/
продукт⍴⍨
arg копирует argА вот еще один, который обрабатывает и отрицательные целые числа:
Попробуйте все случаи!
×/
продукт|
абсолютная величина⍴
г эпетенции|
абсолютное значение*
в силу×
знакВстроенный примитив Power:
источник
Python , 25 байт
Попробуйте онлайн!
источник
Mathematica, 16 байт
У меня есть два решения на этот счет байтов:
Здесь
#~Table~#
создается списокn
копийn
. ЗатемList
заменяется глава,1##&
которая умножает все свои аргументы вместе.Это просто хранит входные данные в
n
и затем умножает1
отn
,n
времени.источник
#~Product~{#}&
JavaScript (ES6),
33282524 байтаПопытайся
история
25 байт
28 байт
33 байта
источник
Чистая Баш, 43
Попробуйте онлайн .
Не уверен, что это слишком сильно нарушает правила - я не использую перечисленные запрещенные встроенные функции, но использую базовое преобразование.
printf 1%0$1d
выводит1
затем н0
ы$[b#a]
является арифметическим расширением, которое рассматриваетсяa
как базовоеb
число, которое дает требуемый результат. К сожалению, base <2 не работает, поэтому дополнительные?:
биты обрабатывают ввод n = 1.Максимальный ввод - 15, потому что bash использует 64-битные целые числа со знаком (до 2 31 -1).
источник
Алиса , 13 байт
Попробуйте онлайн!
объяснение
Это основа для программ, которые читают и записывают десятичные целые числа и работают полностью в кардинальном режиме (поэтому программы для большинства арифметических задач).
источник
Стандартный ML , 42 байта
Попробуйте онлайн!
Объяснение:
источник
Желе , 3 байта
Попробуйте онлайн!
Как?
источник
F7 88 50
работает как задумано.Cubix , 19 байт
Попробуйте онлайн!
Шаг за шагом
Расширяется на куб с длиной стороны 2
I:1
Принимает ввод, дублирует его и нажимает 1. Это устанавливает стек со счетчиком, множителем и результатом.*s;
Умножает TOS, меняет результат на предыдущий и удаляет предыдущий.pu
Принесите встречный предмет в ТОС. Разворот. Это использование для смены полосы движения, но нужно побрить байт.|($
Это было сделано, чтобы сохранить байт. При попадании пропускает декремент. отражает, уменьшает счетчик и пропускает обертывание без операции вокруг куба.!vqW
Проверьте счетчик. Если правдиво пропустите переадресацию, поставьте счетчик на ЛС, измените полосу на множитель. В противном случае перенаправить.|sO@
это конечная последовательность, перенаправленная с контр-теста. Проходит горизонтальное отражение, меняет TOS, принося результат в TOS, вывод и остановку.источник
R, 22 байта
читает
x
со стандартного ввода.генерирует список
x
копийx
, а затем вычисляет произведение элементов этого списка. Когдаx=0
,rep
возвращаетnumeric(0)
, который представляет собой числовой вектор длины0
, но значениеprod
которого равно 1, так что с0^0=1
помощью этого метода, который согласуется со встроенным возведением в степень R, так что это довольно аккуратно.Попробуйте онлайн!
источник
машинный язык x86_64 для Linux,
14 1110 байтДля того, чтобы попробовать его в Интернете! , скомпилируйте и запустите следующую C-программу.
источник
Рубин,
2018 байт-2 байта, потому что спецификация изменилась, и мне больше не нужен аргумент экспоненты.
Попробуйте онлайн!
источник
С накоплением , 10 байтов
Попробуйте онлайн!
Возведение в степень с двумя аргументами для того же самого размера:
Оба являются функциями. Повторяет функцию, которая умножается
1
вn
n
разы.источник
Scala,
3226 bytesTry it online! (Added conversion to long in the TIO so it wouldn't overflow on n=10.)
источник
05AB1E, 3 bytes
Try it online! or Try all examples
источник
.D
. First time I've seen it used.Haskell,
242321 bytesTry it online!
источник
f y=foldr1(*)$y<$[1..y]
на байт короче.product$y<$[1..y]
Japt, 4 bytes
Try it online!
объяснение
источник
машинный код x86 (Linux), 18 байт
Ожидается объявление C следующим образом
extern int XpowX(int)
.разобранный
источник
Брахилог , 6 байт
Попробуйте онлайн!
объяснение
источник
CJam , 7 байтов
Попробуйте онлайн!
объяснение
источник
Perl 6 , 13 байт
$_ xx $_
оценивает список$_
копий$_
($_
являющийся аргументом анонимной функции), а затем[*]
уменьшает этот список с умножением.источник
CJam , 6 байтов
Попробуйте онлайн!
источник
Clojure, 22
:)
источник
Рёда , 17 байт
Попробуйте онлайн!
Это анонимная функция, которая получает данные из потока.
Объяснение:
источник
постоянный ток ,
24232622 байтаЭто моя первая попытка написания рекурсивного макроса в dc. Я уверен, что это неоптимальное решение, которое можно значительно улучшить.
Попробуйте онлайн!
Редактировать: Спасибо eush77 ! -4 байта.
источник
x=1
.lr
sequences at the end with twod
s at the beginning.x
копииx
в стеке (и,1
конечно,), аx
затем умножения. Таким образом, окончание может быть простымdsFxp
.lr
здесь не сработает. Я впервые играю в гольф на стековом языке, так что это очень необычно. Спасибо за вашу помощь!Пакет, 58 байт
Работает только для однозначных входов благодаря 32-битной арифметике.
источник
brainf * ck , 148 байт
Попробуйте онлайн!
Нет встроенных модулей;)
Как это устроено
В двух словах, это работает путем умножения
x
(ввода) на самоx
время. (иначе итеративное добавление). Чистый результат х ^ х.I / O
Программа принимает один вход ASCII и обрабатывает его как индекс ASCII минус 48 . Минус 48 является нормализация входов действительных чисел (
4
становится52
->52-48
->4
). Чтобы ввести число больше 9, используйте следующий соответствующий символ ASCII (:
->58-48
->10
). Программа выводит аналогичным образом.Тестовый ввод / вывод
Since there are no printable ASCII characters after an input of 3, it can only print numbers in theory. Though, you can check all inputs do in fact work on visualizers such as this.
источник
MATLAB/Octave, 23 bytes
источник
Python, 32 bytes
Try it online!
источник
f=
part, so you can shorten your submission to 30 bytes.f=
part does need to be counted, because it's recursive, so it relies upon the function being namedf
in order to work properlyCommon Lisp,
59 4240 bytesTry it online!
источник