Dada uma entrada, imprima todos os expoentes em que a base e a energia somam à entrada

20

Portanto, este é o meu primeiro desafio neste site.

O desafio é obter um número inteiro de entrada , que será positivo, e imprimir, em ordem crescente ( a , incluindo n ), a saída de (onde é o número inteiro atual). n1ni ( n - i ) ii(ni)Eu

Exemplo

Dada a entrada 5, o programa imprimirá:

1  
8  
9  
4  
1  

14 1 + 4 = 5 2 3 2 + 3 = 5 3 2 3 + 2 = 5 4 1 4 + 1 = 5 5 0 5 + 0 = 5 é 1 e é 8 e é 9 e é 4 e é 1 e1+4=5
232+3=5
323+2=5
414+1=5
50 05+0 0=5

Entrada e saída

A entrada será na forma de um número inteiro positivo. A saída será uma lista de números, delimitados por vírgulas ou novas linhas.

Isso é , então o código mais curto vence.

Forma de Ignorância
fonte
5
o detalhe de vírgula / nova linha deve ser omitido; é prática comum por aqui permitir que a saída de listas esteja em qualquer formato conveniente, inclusive como um objeto de lista / matriz retornado por uma função
Sparr
3
A entrada é sempre maior que 0 ou temos que lidar com 0 e negativos?
Veskah
As entradas sempre serão positivas
Modalidade de ignorância
6
Duas respostas igualmente curtas não importam. Se você deseja aceitar uma resposta, escolha a primeira postada. No entanto I fortemente recomendam esperar pelo menos alguns dias, e sugeriria não aceitar uma resposta (para encorajar mais submissões).
Οurous
2
O título não deveria ser "Dado um número inteiro , imprima todos os poderes obtidos com uma base e um expoente que somarem à entrada"?
Nicola Sap

Respostas:

6

APL (Dyalog Unicode) , 8 5 bytes

⍳*⊢-⍳

Experimente online!

Função tácita de prefixo anônimo. Testes TIO para o intervalo [1..10].

Obrigado @lirtosiast por 3 bytes.

Quão:

⍳*⊢-⍳  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),...]
J. Sallé
fonte
2
⍳*⊢-⍳é de 5 bytes, usando ⎕IO←1.
lirtosiast
@lirtosiast demorei um pouco para descobrir por que isso funciona, mas eu entendi. Obrigado.
J. Sallé 29/11
5

Haskell, 23 bytes

f i=[x^(i-x)|x<-[1..i]]

Experimente online!

Versão alternativa, também 23 bytes:

f i=(^)<*>(i-)<$>[1..i]
nimi
fonte
5

Japt, 5 bytes

õ_p´U

Tente

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

Perl 6 , 19 bytes

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

Experimente online!

Bloco de código anônimo que pega um número e retorna uma lista. Expoentes zip o intervalo 1 to inpute o intervaloinput-1 to 0

Brincadeira
fonte
5

Aheui (esotope) , 193 164 bytes (56 caracteres)

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

Experimente online!

Experimente no AVIS ( coreano ); basta copiar e colar o código acima, pressione o botão Iniciar, insira um número, veja como ele se move. Para ver a saída, pressione o ícone > _ no lado esquerdo.


Não é muito jogado, mas eu dou uma chance.

cobaltp
fonte
É possível escolher um conjunto de caracteres, para que cada caractere seja armazenado em 2 bytes?
Tsh
@tsh De acordo com a especificação Aheui , um código Aheui consiste em apenas caracteres UTF-8.
Cobaltp
4

Pitão , 5 bytes

_m^-Q

Experimente online!

Idealmente codificado, isso seria 4,106 bytes.

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

Gelatina , 5 bytes

R*ḶU$

Experimente online!

R                [1,...,n]
 *               to the power of
  ḶU$            [0,...,n-1] reversed
lirtosiast
fonte
2

MathGolf , 6 bytes

rx\╒m#

Experimente online!

Brincadeira
fonte
Eu implementei subtração reversa, multiplicação e divisão, mas parece que um operador de energia reversa pode ser útil?
Max 28/11
2

Retina , 35 bytes

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

Experimente online! Explicação:

.+
*

Converta a entrada para unário.

_

Combine cada posição. Isso define várias variáveis ​​de substituição. $`torna-se à esquerda da partida; $>`modifica para que fique à esquerda e corresponda; $.>`modifica isso para levar o comprimento, ou seja, o índice atual. $'Enquanto isso, é o direito da partida, assim $.'como o comprimento, ou seja, o expoente atual.

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

Crie uma string $.(mais $.'repetições de $.>`*mais _. Por exemplo, para um índice de 2 em uma entrada original de 5, $.'é 3 e $.>`é 2, portanto, a sequência resultante é $.(2*2*2*_. Esta é convenientemente uma expressão de substituição da retina que calcula 2 ³. Cada string é impressa em sua própria linha.

%~`^
.+¶

Para cada linha gerada pelo estágio anterior, prefixe uma linha .+para ela, transformando-a em um estágio de substituição e avalie esse estágio, calculando a expressão.

Neil
fonte
2

QBasic, 35 33 bytes

Obrigado @Neil por 2 bytes!

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

Versão ligeiramente expandida no REPL.IT porque o intérprete não está totalmente atualizado.

Saída

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

   5
1
8
9
4
1
steenbergh
fonte
Economize 2 bytes, exibindo a lista na ordem correta! ( b^(a-b)for b=1..a)
Neil
@ Neil Obrigado, eu trabalhei nele!
precisa
2

MATL , 5 bytes

:Gy-^

Experimente online!

Explicação

Considere a entrada 5como um exemplo.

:     % 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]
Luis Mendo
fonte
2

Java, 59 bytes

for(int i=1;a+1>i;i++)System.out.println(Math.pow(i,a-i));
isaace
fonte
1
Bem-vindo ao PPCG. Parece que isso requer que "entrada" seja atribuída à variável predefinida a, o que não permitimos.
Shaggy
2
Olá, aqui é uma solução para você: n->{for(int i=0;i++<n;)System.out.println(Math.pow(i,n-i));} 60 bytes (casos de código e de teste no link)
Olivier Grégoire
1

Limpo , 37 bytes

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

Experimente online!

Define $ :: Int -> [Int]pegar um número inteiro e retornar a 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
   ]
Furioso
fonte
1

R , 34 bytes

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

Experimente online!

Giuseppe
fonte
O padrão "sep" não é um espaço? Isso não funcionaria?
Stuart Stevenson
1
@stuartstevenson "A saída será uma lista de números, delimitados por vírgulas ou novas linhas."
Giuseppe
1

05AB1E , 5 bytes

LD<Rm

Porto de @lirtosiast resposta Jelly 's .

Experimente online.

Explicação:

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]
Kevin Cruijssen
fonte
1

Lua , 43 41 bytes

-2 bytes graças a @Shaggy

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

Experimente online!

ouflak
fonte
1
Eu não acho que você precise do +0; parece funcionar sem ele.
Shaggy
1

R, 22 bytes

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

Bastante auto-explicativo; note que o :operador tem precedência mais alta que o -operador, portanto n:1-1é mais curto que(n-1):0

Se pudermos começar com 0, podemos perder dois bytes, (0:n)^(n:0)evitando a necessidade de um -1.

JDL
fonte
1

Carvão , 9 bytes

I⮌ENX⁻θιι

Experimente online! Link é a versão detalhada do código. Explicação:

   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
Neil
fonte