Dada una entrada, imprima todos los exponentes donde la base y la potencia suman a la entrada


20

Este es mi primer desafío en este sitio.

El desafío es tomar un número entero de entrada norte , que será positivo, e imprimir, en orden ascendente ( 1 a norte , incluido n ), la salida de yo(norte-yo) (donde yo es el número entero actual).

Ejemplo

Dada la entrada 5, el programa imprimirá:

1  
8  
9  
4  
1  

14 4 es 1 y1+4 4=5 5
23 es 8 y2+3=5 5
32 es 9 y3+2=5 5
4 41 es 4 y4 4+1=5 5
5 50 0 es 1 y5 5+0 0=5 5

Entrada y salida

La entrada tendrá la forma de un entero positivo. La salida será una lista de números, delimitada por comas o nuevas líneas.

Este es el , por lo que gana el código más corto.


55
se deben omitir los detalles de coma / nueva línea, es una práctica normal aquí permitir que la salida de listas esté en cualquier formato conveniente, incluso como un objeto de lista / matriz devuelto por una función
Sparr

3
¿La entrada siempre es mayor que 0 o tenemos que lidiar con 0 y negativos?
Veskah

Los aportes siempre serán positivos
Encarnación de la ignorancia

66
Dos respuestas igualmente cortas no importan. Si tiene ganas de aceptar una respuesta, elija la primera publicada. Sin embargo me fuertemente recomiendan esperar al menos unos días, y sugeriría que nunca aceptar una respuesta (para animar a más presentaciones).
Οurous

2
¿No debería ser el título "Dado un número entero , imprima todas las potencias obtenidas con una base y un exponente que sumen a la entrada"?
Nicola Sap

Respuestas:


6

APL (Dyalog Unicode) , 8 5 bytes

⍳*⊢-⍳

Pruébalo en línea!

Prefijo anónimo función tácita. TIO prueba para el rango [1..10].

Gracias @lirtosiast por 3 bytes.

Cómo:

⍳*⊢-⍳  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
⍳*⊢-⍳es de 5 bytes, usando ⎕IO←1.
lirtosiast el

@lirtosiast me tomó un tiempo entender por qué funciona eso, pero lo entendí. Gracias.
J. Sallé


5

Japt, 5 bytes

õ_p´U

Intentalo

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

5

Perl 6 , 19 bytes

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

Pruébalo en línea!

Bloque de código anónimo que toma un número y devuelve una lista. Zip exponentes el rango 1 to inputy el rangoinput-1 to 0


5

Aheui (esótopo) , 193 164 bytes (56 caracteres)

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

Pruébalo en línea!

Pruébalo en AVIS ( coreano ); simplemente copie y pegue el código anterior, presione el botón de inicio, ingrese un número, vea cómo se mueve. Para ver la salida, presione > _ icono en el lado izquierdo.


No se juega mucho al golf, pero lo intento.


¿Es posible elegir un conjunto de caracteres para que cada carácter se almacene en 2 bytes?
tsh

@tsh Según la especificación de Aheui , un código de Aheui consta de solo caracteres UTF-8.
cobaltp

4

Pyth , 5 bytes

_m^-Q

Pruébalo en línea!

Esta codificación óptima sería de 4.106 bytes.

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










2

Retina , 35 bytes

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

Pruébalo en línea! Explicación:

.+
*

Convierta la entrada a unario.

_

Empareja cada posición. Esto establece varias variables de reemplazo. $`se convierte en la izquierda del partido; $>`modifica esto para que sea la izquierda y el partido; $.>`modifica esto para tomar la longitud, es decir, el índice actual. $'mientras tanto es el derecho del partido, también lo $.'es la longitud, es decir, el exponente actual.

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

Crea una cadena $.(más $.'repeticiones de $.>`*más _. Por ejemplo, para un índice de 2 en una entrada original de 5, $.'es 3 y $.>`es 2, entonces la cadena resultante es $.(2*2*2*_. Esto es convenientemente una expresión de reemplazo de retina que calcina 2³. Cada cadena se emite en su propia línea.

%~`^
.+¶

Para cada línea generada por la etapa anterior, prefije una línea .+, convirtiéndola en una etapa de reemplazo y evalúe esa etapa, calculando así la expresión.


2

QBasic, 35 33 bytes

¡Gracias @Neil por 2 bytes!

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

Versión ligeramente ampliada en REPL.IT porque el intérprete no está completamente a la altura.

Salida

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

   5
1
8
9
4
1

¡Ahorre 2 bytes enviando la lista en el orden correcto! ( b^(a-b)para b=1..a)
Neil

@Neil ¡Gracias, lo he trabajado!
steenbergh




2

MATL , 5 bytes

:Gy-^

Pruébalo en línea!

Explicación

Considere la entrada 5como un ejemplo.

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

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

1
Bienvenido a PPCG. Parece que esto requiere que se asigne "entrada" a la variable predefinida a, que no permitimos.
Shaggy

2
Hola, aquí hay una solución para usted: n->{for(int i=0;i++<n;)System.out.println(Math.pow(i,n-i));} 60 bytes (código y casos de prueba en el enlace)
Olivier Grégoire

1

Limpio , 37 bytes

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

Pruébalo en línea!

Define $ :: Int -> [Int]tomar un número entero y devolver la lista de resultados.

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

LD<Rm

Respuesta de Port of @lirtosiast 's Jelly .

Pruébalo en línea.

Explicación:

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 bytes

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

Bastante autoexplicativo; tenga en cuenta que el :operador tiene mayor precedencia que el -operador, por lo que n:1-1es más corto que(n-1):0

Si se nos permite comenzar en 0, entonces podemos perder dos bytes al (0:n)^(n:0)evitar la necesidad de un -1.


1

Carbón de leña , 9 bytes

I⮌ENX⁻θιι

Pruébalo en línea! El enlace es a la versión detallada del código. Explicación:

   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


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.