Dato un input, stampa tutti gli esponenti in cui la base e la potenza si sommano all'input


20

Quindi questa è la mia prima sfida su questo sito.

La sfida è quella di accettare un numero intero di input n , che sarà positivo e stampare, in ordine crescente (da 1 a n , incluso n ), l'output di i(ni) (dove i è il numero intero corrente).

Esempio

Dato l'ingresso 5, il programma stamperà:

1  
8  
9  
4  
1  

14 è 1 e1+4=5
23 è 8 e2+3=5
32 è 9 e3+2=5
41 è 4 e4+1=5
50 è 1 e5+0=5

Ingresso e uscita

L'input avrà la forma di un numero intero positivo. L'output sarà un elenco di numeri, delimitato da virgole o nuove righe.

Questo è , quindi vince il codice più corto.


5
il dettaglio virgola / newline dovrebbe essere omesso, è normale qui intorno lasciare che l'output degli elenchi sia in qualsiasi formato conveniente, incluso come oggetto list / array che viene restituito da una funzione
Sparr

3
L'input è sempre maggiore di 0 o abbiamo a che fare con 0 e negativi?
Veskah,

Gli input saranno sempre positivi
Incarnazione dell'ignoranza

6
Due risposte ugualmente brevi non contano. Se hai voglia di accettare una risposta, scegli la prima pubblicata. Tuttavia ho fortemente raccomando di aspettare almeno un paio di giorni, e suggerirei mai accettare una risposta (per incoraggiare un maggior osservazioni).
Οuroso

2
Il titolo non dovrebbe essere "Dato un numero intero , stampare tutti i poteri ottenuti con una base e un esponente che sommano l'input"?
Nicola Sap,

Risposte:


6

APL (Dyalog Unicode) , 8 5 byte

⍳*⊢-⍳

Provalo online!

Funzione tacita prefisso anonimo. Test TIO per l'intervallo [1..10].

Grazie @lirtosiast per 3 byte.

Come:

⍳*⊢-⍳  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
⍳*⊢-⍳è di 5 byte, usando ⎕IO←1.
lirtosiast

@lirtosiast mi ha impiegato un po 'di tempo per capire perché funziona, ma l'ho capito. Grazie.
J. Sallé,


5

Japt, 5 byte

õ_p´U

Provalo

õ         :Range [1,input]
 _        :Map
  p       :  Raise to the power of
   ´U     :  Input decremented

5

Perl 6 , 19 byte

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

Provalo online!

Blocco di codice anonimo che accetta un numero e restituisce un elenco. Zip espone la gamma 1 to inpute la gammainput-1 to 0


5

Aheui (esotopo) , 193 164 byte (56 caratteri)

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

Provalo online!

Provalo su AVIS ( coreano ); basta copiare e incollare il codice sopra, premere il pulsante Start, inserire un numero, vedere come si muove. Per vedere l'output, premi l' icona > _ sul lato sinistro.


Non gioca molto a golf, ma ci provo.


È possibile scegliere un set di caratteri, in modo che ogni carattere sia memorizzato in 2 byte?
TSH

@tsh Secondo le specifiche Aheui , un codice Aheui è composto da soli caratteri UTF-8.
cobaltp,

4

Pyth , 5 byte

_m^-Q

Provalo online!

Codificato in modo ottimale, questo sarebbe 4.106 byte.

_                reverse of the following list:
 m               map the following lambda d:
  ^                (N-d)**d
   -Qd             
      d
       Q         over [0,...,N-1]










2

Retina , 35 byte

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

Provalo online! Spiegazione:

.+
*

Converti l'input in unario.

_

Abbina ogni posizione. Questo quindi imposta diverse variabili di sostituzione. $`diventa la sinistra della partita; $>`modifica questo per essere la sinistra e la corrispondenza; $.>`modifica questo per prendere la lunghezza, cioè l'indice corrente. $'nel frattempo è il diritto della partita, così $.'come la lunghezza, cioè l'esponente attuale.

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

Crea una stringa $.(più $.'ripetizioni di $.>`*più _. Ad esempio, per un indice di 2 in un input originale di 5, $.'è 3 ed $.>`è 2, quindi la stringa risultante è $.(2*2*2*_. Questa è convenientemente un'espressione sostitutiva della Retina che calotta 2³. Ogni stringa viene emessa su una propria riga.

%~`^
.+¶

Per ogni linea generata dallo stadio precedente, aggiungi un prefisso .+ad essa, trasformandolo in uno stadio sostitutivo, e valuta quello stadio, calcolando così l'espressione.


2

QBasic, 35 33 byte

Grazie @Neil per 2 byte!

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

Versione leggermente espansa su REPL.IT perché l'interprete non è del tutto aggiornato.

Produzione

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

   5
1
8
9
4
1

Salva 2 byte emettendo l'elenco nell'ordine corretto! ( b^(a-b)per b=1..a)
Neil,

@Neil Grazie, ci ho lavorato!
steenbergh,




2

MATL , 5 byte

:Gy-^

Provalo online!

Spiegazione

Considera l'input 5come esempio.

:     % 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 byte

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

1
Benvenuti in PPCG. Sembra che questo richieda che "input" sia assegnato alla variabile predefinita a, cosa che non è consentita.
Shaggy,

2
Ciao, ecco una soluzione per te: n->{for(int i=0;i++<n;)System.out.println(Math.pow(i,n-i));} 60 byte (codice e casi di test nel link)
Olivier Grégoire

1

Pulito , 37 byte

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

Provalo online!

Definisce $ :: Int -> [Int]prendere un numero intero e restituire l'elenco dei risultati.

$ 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
   ]


1

05AB1E , 5 byte

LD<Rm

La risposta di Jelly al porto di @lirtosiast .

Provalo online.

Spiegazione:

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

Lua , 43 41 byte

-2 byte grazie a @Shaggy

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

Provalo online!


1
Non penso che tu abbia bisogno di +0; sembra funzionare senza di essa.
Shaggy,

1

R, 22 byte

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

Abbastanza autoesplicativo; si noti che l' :operatore ha una precendenza superiore rispetto -all'operatore, quindi n:1-1è più breve di(n-1):0

Se ci è permesso di iniziare da 0, allora possiamo perdere due byte usando (0:n)^(n:0)evitando la necessità di un -1.


1

Carbone , 9 byte

I⮌ENX⁻θιι

Provalo online! Il collegamento è alla versione dettagliata del codice. Spiegazione:

   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


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.