З огляду на введення, надрукуйте всі експоненти, де база та потужність підсумовуються


20

Тож це мій перший виклик на цьому сайті.

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

Приклад

Враховуючи вхід 5, програма надрукує:

1  
8  
9  
4  
1  

14 є 1 і1+4=5дорівнює 8 ідорівнює 9 і- це 4, а- це 1 і
232+3=5
323+2=5
414+1=5
505+0=5

Вхід і вихід

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

Це , тому найкоротший код виграє.


5
деталь з комою / новим рядком слід опустити, звичайно, тут можна випускати списки у будь-якому зручному форматі, у тому числі як об'єкт списку / масиву, який повертається функцією
Sparr

3
Чи завжди вхід більший за 0 або нам доводиться мати справу з 0 і мінусами?
Веська

Вхід завжди буде позитивним
Втілення Незнання

6
Два однаково короткі відповіді не мають значення. Якщо ви хочете прийняти відповідь, виберіть найранішу з них. Однак я настійно рекомендую почекати хоча б кілька днів, і я б радив ніколи не приймати відповідь (щоб заохотити більше подань).
Οurous

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 знадобився мені час, щоб зрозуміти, чому це працює, але я це зрозумів. Спасибі.
Дж. Салле




5

Ахей (езотоп) , 193 164 байти (56 символів)

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

Спробуйте в Інтернеті!

Спробуйте його на AVIS ( корейська ); просто скопіюйте та вставте код вище, натисніть кнопку пуску, введіть номер, подивіться, як він рухається. Щоб побачити вихід, натисніть значок > _ зліва.


Це не багато в гольфі, але я даю йому постріл.


Чи можна вибрати набір символів, щоб кожен символ зберігався у 2 байтах?
tsh

@tsh Відповідно до специфікації Aheui, код Aheui складається лише з символів UTF-8.
кобальтп











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

Збережіть 2 байти, вивівши список у правильному порядку! ( b^(a-b)для b=1..a)
Ніл

@Neil Спасибі, я працював над цим!
steenbergh


2

JavaScript (Node.js) , 33 32 байти

n=>(g=i=>--n?++i**n+[,g(i)]:1)``

Спробуйте в Інтернеті!

-3 байти з кредитами до @Shaggy, і -1 байт від @ l4m2!

JavaScript (Node.js) , 36 байт

f=(n,i=1)=>n--?[i++**n,...f(n,i)]:[]

Спробуйте в Інтернеті!

JavaScript (Node.js) , 37 байт

n=>[...Array(n)].map(x=>++i**--n,i=0)

Спробуйте в Інтернеті!





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

Ява, 59 байт

for(int i=1;a+1>i;i++)System.out.println(Math.pow(i,a-i));

1
Ласкаво просимо до PPCG. Схоже, це вимагає присвоєння «вводу» попередньо визначеній змінній a, що ми не допускаємо.
Кудлатий

2
Привіт, ось вам виправлення: n->{for(int i=0;i++<n;)System.out.println(Math.pow(i,n-i));} 60 байт (код та тестові приклади за посиланням)
Олів'є Грегоар



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

R, 22 байти

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

Досить зрозуміло; зауважте, що :оператор є вищим превенцією, ніж -оператор, тому n:1-1коротший за(n-1):0

Якщо нам дозволено починати з 0, то ми можемо втратити два байти, використовуючи (0:n)^(n:0)уникаючи необхідності -1.




Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.