При заданном входе выведите все показатели, где основание и мощность суммируются с входом.

20

Так что это мой первый вызов на этом сайте.

Задача состоит в том, чтобы взять входное целое число n , которое будет положительным, и вывести в порядке возрастания (от 1 до n , включая n ) вывод i(ni) (где i - текущее целое число).

пример

Учитывая ввод 5, программа напечатает:

1  
8  
9  
4  
1  

14 равно 1,1+4=5
23 равно 8 и2+3=5
32 равно 9, а3+2=5
41 равно 4 и4+1=5
50 равно 1 и5+0=5

Вход и выход

Ввод будет в виде положительного целого числа. Выводом будет список чисел, разделенных запятыми или новыми строками.

Это , поэтому выигрывает самый короткий код.

Воплощение невежества
источник
5
детали запятой / новой строки должны быть опущены, здесь обычно разрешается выводить списки в любом удобном формате, в том числе в виде объекта списка / массива, возвращаемого функцией
Sparr
3
Вход всегда больше 0 или нам приходится иметь дело с 0 и отрицаниями?
Веска
Входные данные всегда будут положительными
Воплощение Невежества
6
Два одинаково коротких ответа не имеют значения. Если вы хотите принять ответ, выберите самый ранний опубликованный ответ. Тем не менее, я настоятельно рекомендую подождать не менее нескольких дней и рекомендовать никогда не принимать ответ (чтобы поощрять больше заявок).
18:00
2
Не должен ли заголовок быть «дан целом числе вывести все полученные степени с базой и показателем, суммирующим с входом»?
Никола Сап

Ответы:

6

APL (Dyalog Unicode) , 8 5 байт

⍳*⊢-⍳

Попробуйте онлайн!

Анонимный префикс неявной функции. TIO тесты для диапазона [1..10].

Спасибо @lirtosiast за 3 байта.

Как:

⍳*⊢-⍳  Tacit function
      Range. n generates the vector [1..n].
  ⊢-  Subtracted from the argument. The vector is now [n-1,n-2,...,0]
⍳*     Exponentiate using the range [1..n] as base. The result is the vector
       [1^(n-1), 2^(n-2), 3^(n-3),...]
Ж. Салле
источник
2
⍳*⊢-⍳5 байт, используя ⎕IO←1.
Lirtosiast
@lirtosiast мне понадобилось время, чтобы понять, почему это работает, но я понял. Благодарю.
J. Sallé
5

Perl 6 , 19 байт

{^$_+1 Z**[R,] ^$_}

Попробуйте онлайн!

Блок анонимного кода, который принимает число и возвращает список. Экспоненты почтового индекса диапазон 1 to inputи диапазонinput-1 to 0

Джо Кинг
источник
5

Aheui (эзотоп) , 193 164 байта (56 символов)

방빠싹받분샥퍼붇바파쟈뿌차샦히망맣여
타빠바푸투반또분뽀뿌서썪삯타삯받반타
석차샦져쌲볼어타토싻삭빠쏛ㅇ또섞썪뻐

Попробуйте онлайн!

Попробуйте это на AVIS ( корейский ); просто скопируйте и вставьте код выше, нажмите кнопку «Пуск», введите число, посмотрите, как он движется. Чтобы увидеть результат, нажмите значок > _ слева.


Это не много в гольфе, но я даю ему шанс.

cobaltp
источник
Можно ли выбрать набор символов, чтобы каждый символ сохранялся в 2 байтах?
ч. В
@tsh Согласно спецификации Aheui, код Aheui состоит только из символов UTF-8.
кобальт
4

Pyth , 5 байт

_m^-Q

Попробуйте онлайн!

Оптимально закодировано это было бы 4.106 байтов.

_                reverse of the following list:
 m               map the following lambda d:
  ^                (N-d)**d
   -Qd             
      d
       Q         over [0,...,N-1]
lirtosiast
источник
2

MathGolf , 6 байтов

rx\╒m#

Попробуйте онлайн!

Джо Кинг
источник
Я реализовал обратное вычитание, умножение и деление, но похоже, что оператор обратной мощности может пригодиться?
Макс
2

Сетчатка , 35 байт

.+
*
_
$$.($.'*$($.>`$*)_¶
%~`^
.+¶

Попробуйте онлайн! Объяснение:

.+
*

Преобразовать ввод в унарный.

_

Подходим каждую позицию. Это тогда устанавливает несколько переменных замены. $`становится левым от матча; $>`изменяет это, чтобы быть левым и соответствовать; $.>`изменяет это, чтобы взять длину, то есть текущий индекс. $'Между тем это право на совпадение, так же $.'как и длина, то есть текущий показатель.

$$.($.'*$($.>`$*)_¶

Создайте строку $.(плюс $.'повторения $.>`*плюс _. Например, для индекса 2 в исходном вводе 5 $.'- 3, а $.>`2 - итоговая строка $.(2*2*2*_. Это удобно - выражение замены сетчатки, которое вычисляет 2³. Каждая строка выводится на отдельной строке.

%~`^
.+¶

Для каждой строки, сгенерированной предыдущим этапом, добавьте .+к ней префикс строки , превратив ее в этап замены, и оцените этот этап, вычислив, таким образом, выражение.

Нил
источник
2

QBasic, 35 33 байта

Спасибо @Neil за 2 байта!

INPUT a
FOR b=1TO a
?b^(a-b)
NEXT

Немного расширенная версия на REPL.IT, потому что интерпретатор не совсем соответствует спецификации.

Выход

QBasic (qb.js)
Copyright (c) 2010 Steve Hanov

   5
1
8
9
4
1
steenbergh
источник
Сохраните 2 байта, выводя список в правильном порядке! ( b^(a-b)для b=1..a)
Нил
@Neil Спасибо, я работал над этим!
Стинберг
2

MATL , 5 байтов

:Gy-^

Попробуйте онлайн!

объяснение

Рассмотрим ввод 5в качестве примера.

:     % Implicit input. Range
      % STACK: [1 2 3 4 5]
G     % Push input again
      % STACK: [1 2 3 4 5], 5
y     % Duplicate from below
      % STACK: [1 2 3 4 5], 5, [1 2 3 4 5]
-     % Subtract, element-wise
      % STACK: [1 2 3 4 5], [4 3 2 1 0]
^     % Power, element-wise. Implicit display
      % STACK: [1 8 9 4 1]
Луис Мендо
источник
2

Java, 59 байт

for(int i=1;a+1>i;i++)System.out.println(Math.pow(i,a-i));
isaace
источник
1
Добро пожаловать в PPCG. Похоже, это требует, чтобы «вход» был назначен предопределенной переменной a, что мы не разрешаем.
лохматый
2
Здравствуйте, вот исправление для вас: n->{for(int i=0;i++<n;)System.out.println(Math.pow(i,n-i));} 60 байт (код и тестовые примеры в ссылке)
Оливье Грегуар
1

Чисто , 37 байт

import StdEnv
$n=[i^(n-i)\\i<-[1..n]]

Попробуйте онлайн!

Определяет $ :: Int -> [Int]взятие целого числа и возвращение списка результатов.

$ n                // function $ of n
 = [i ^ (n-i)      // i to the power of n minus i
    \\ i <- [1..n] // for each i in 1 to n
   ]
Οurous
источник
1

R , 34 байта

x=1:scan();cat(x^rev(x-1),sep=',')

Попробуйте онлайн!

Giuseppe
источник
По умолчанию "sep" не пробел? Разве это не сработает?
Стюарт Стивенсон
1
@stuartstevenson "Вывод будет списком чисел, разделенных запятыми или новыми строками."
Джузеппе
1

05AB1E , 5 байтов

LD<Rm

Порт @lirtosiast 's Jelly ответа .

Попробуйте онлайн.

Объяснение:

L      # List in the range [1, (implicit) input integer]
       #  i.e. 5 → [1,2,3,4,5]
 D<    # Duplicate this list, and subtract 1 to make the range [0, input)
       #  i.e. [1,2,3,4,5] → [0,1,2,3,4]
   R   # Reverse it to make the range (input, 0]
       #  i.e. [0,1,2,3,4] → [4,3,2,1,0]
    m  # Take the power of the numbers in the lists (at the same indices)
       # (and output implicitly)
       #  i.e. [1,2,3,4,5] and [4,3,2,1,0] → [1,8,9,4,1]
Кевин Круйссен
источник
1

Луа , 43 41 байт

-2 байта благодаря @Shaggy

s=io.read()for i=1,s do print(i^(s-i))end

Попробуйте онлайн!

ouflak
источник
1
Я не думаю, что вам нужно +0; кажется, работает без него.
Лохматый
1

R, 22 байта

n=scan();(1:n)^(n:1-1)

Довольно очевидный; обратите внимание, что :оператор имеет более высокий приоритет, чем -оператор, так чтоn:1-1 короче(n-1):0

Если нам разрешено начинать с 0, то мы можем потерять два байта, (0:n)^(n:0)избегая необходимости в -1.

JDL
источник
1

Древесный уголь , 9 байт

I⮌ENX⁻θιι

Попробуйте онлайн! Ссылка на подробную версию кода. Объяснение:

   N        Input as a number
  E         Map over implicit range
       ι    Current value
     ⁻      Subtracted from
      θ     First input
    X       Raised to power
        ι   Current value
 ⮌          Reverse list
I           Cast to string
             Implicitly print on separate lines
Нил
источник