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.


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),...]

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

Japt, 5 bytes

õ_p´U

Tente

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


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.


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










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.


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

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]

2

Java, 59 bytes

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

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
   ]


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]


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.


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


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.