"O Prêmio Nobel de matemática foi concedido a um professor da Califórnia que descobriu um novo número! O número é bleen, que ele afirma pertencer entre 6 e 7". --George Carlin
Nesse desafio, você imprimirá todos os números inteiros, inclusive, dentro do intervalo de entrada especificado. Imprima números crescente ou decrescente de acordo com a ordem de entrada. Ou seja, para entrada [n1, n2]
, imprima ascendente se n1 < n2
, descendente se n1 > n2
.
Como bleen
agora é um número inteiro, ele pode ser usado como entrada. Também deve ser incluído na saída, entre 6
e 7
onde aplicável. Observe também que -bleen
existe entre -7 e -6.
Entrada
Dois números inteiros [n1, n2]
no intervalo [-10, 10], inclusive, através da entrada de sua linguagem de programação preferida.
(A entrada também pode conter bleen
e -bleen
!)
Resultado
Imprima todos os números inteiros começando n1
e terminando com n2
, incluindo o recém-descoberto bleen
entre 6 e 7. A saída pode ser um intervalo de números separados por caracteres de alguma forma que o seu idioma suporte - ou seja, separados por vírgula ou espaço. Um espaço à direita de saída está bom.
Exemplos
Input: 1 10
Output: 1 2 3 4 5 6 bleen 7 8 9 10
Input: -9 -4
Output: -9 -8 -7 -bleen -6 -5 -4
Input: -8 bleen
Output: -8 -7 -bleen -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 bleen
Input: 9 1
Output: 9 8 7 bleen 6 5 4 3 2 1
Input: 2 -bleen
Output: 2 1 0 -1 -2 -3 -4 -5 -6 -bleen
Input: -bleen 0
Output: -bleen -6 -5 -4 -3 -2 -1 0
Input: bleen bleen
Output: bleen
Input: 2 2
Output: 2
Notas Adicionais
Você pode escrever um programa ou função e usar qualquer método padrão de recebimento de entrada e saída.
Você pode usar qualquer linguagem de programação , mas brechas padrão não são permitidas.
Isso é código-golfe , então a resposta mais curta e válida - medida em bytes - vence.
Respostas:
Python 3,
132130 bytesRecebe entrada no seguinte formato de exemplo:
fonte
[-10,10]
?bleen=7/m
para clearification sem penalidade personagemeval
se traduzableen
no valor correto.Ruby,
11410098 bytesEntrada é uma matriz com
[n1, n2]
. (Se houver dois argumentos separados, +1 byte para alterar a função arg deg
para*g
. Bleen deve ser uma string"bleen"
. mas também joguei mais sete depois disso.Experimente online.
Versão original original do programa que lê entradas de
ARGV
:fonte
.map &:to_s
e salvar 6 bytes e salvar mais um alterando a inicialização dea
paraa=*-10..10;a[4,0]=?-+b;a[18,0]=b
.->*g{b='bleen';a=*-10..10;a[4,0]=?-+b;a[18,0]=b;x,y=g.map{|v|a.index v};puts y<x ?a[y..x].reverse: a[x..y]}
Pitão , 35 bytes
Suíte de teste.
A primeira parte, ou seja
K++L\-P_J++`M7"bleen"`M}7TJ
, gera esta matriz:e depois armazena
K
.A segunda parte, ou seja
@LK}FxLK
, encontra a sub-lista indicada pela entrada.fonte
Python 3,
157145123108115139161158153 bytesGuardado 22 graças a Lynn. 17 salvos graças a shooqie. 3 salvos graças a ljeabmreosn. 5 economizados graças a Geoff Reedy.
Entrada como
'-10', '8'
. Dicas são bem-vindas para um iniciante.Adicionado 7 para dar conta
-bleen
. Adicionado 15 para contabilizar entrada invertida como'8','-10'
. Adicionado um grande 21 a conta para os sinais de entrada revertida parableen
vs-bleen
.fonte
l.index('-6')
el.index('7')
deve ser apenas constante, não?l=[str(i)for i in range(-10,11)]
->l=list(map(str,range(-10,11)))
l=list(range(-10,11))
funciona bemfor i in(4,18):l.insert(i,'bleen')
.'bleen'
, em vez de um'-bleen','bleen'
Ruby, 141 bytes
Ungolfed
fonte
Lote,
239186 bytesFunciona fazendo loop de
3*%1
até3*%3
e depois dividindo por três e imprimindo os números sem resto, no entanto, a configuraçãobleen
para esse número mágico causa excesso de número inteiro e o valor20
é usado. Isso é impresso no ponto apropriado do loop.fonte
-bleen
também esqueci . Bah.bleen.bat bleen -bleen
talvez?JavaScript (ES6), 158
Bom desafio, difícil de jogar golfe. Provavelmente, os métodos de intervalo usados nas respostas Python e Ruby poderiam ter uma pontuação melhor, mesmo em JS.
Menos golfe
Teste
fonte
Swift 2.2, 342 bytes
Teste isso usando o Swift Sandbox da IBM
Ungolfed
fonte
Java, 271 bytes
Sem jogar com casos de teste:
Ligue para b (início, fim). Como os parâmetros são cadeias de caracteres, é preciso muito espaço para convertê-las em ints. Essencialmente, o programa trata 7 e -7 como bleen e -bleen.
fonte
p
pode ser alterado para o seguinte para salvar 6 bytes:int p(String w){int x=w.length(),i;if(x>3)return x<6?7:-7;i=Integer.decode(w);return i<-6?i-1:i>6?i+1:i;}
. Além disso, você pode querer afirmar que este é o Java 7 e talvez adicionar uma ideona .Java 7, 251 bytes
Abordagem diferente, mais curta que a resposta Java 7 já existente .
Além disso, é lamentável que os parâmetros não estejam em ordem, o que adiciona alguns bytes para trocá-los.
Casos não testados e de teste:
Experimente aqui.
Resultado:
fonte
Scala, 223 bytes
fonte
JavaScript (ES6), 178 bytes
Tente
EDIT: correção para pedidos inversos.Obrigado Patrick, perdeu esta condição
fonte
Python 3, 126 bytes
A entrada está no formato
-5, 'bleen'
fonte
R ,
110107 bytesAgradecimentos a Cyoce por jogar 3 bytes.
Constrói a lista inteira em ordem, escolhe as relevantes. A função no meio chamada "b" parecia a maneira mais fácil de fazer isso acontecer. Aplicar, etc
fonte
Javascript (usando biblioteca externa) (343 bytes)
Link para lib: https://github.com/mvegh1/Enumerable
Captura de tela:
fonte
Python 2, 100 bytes
As quatro primeiras linhas geram a lista
[-10, -9, -8, -7, 'bleen', -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 'bleen', 7, 8, 9, 10]
. A próxima linha obtém entrada e a armazena ems
ee
. As duas últimas linhas usam.index()
e listam a notação de fatia para obter o intervalo correto.Funciona da mesma maneira que a resposta de Leaky Nun, mas desenvolvido de forma independente. Roubou um método de entrada do orlp.
Ungolfed:
fonte
-7
e-6
é-bleen
, nãobleen
. Embora tenhamos encontrado um novo número, as regras básicas da álgebra devem permanecer constantes:0
é o único número que é seu próprio aditivo inverso, em virtude de ser o elemento de identidade aditivo. Além disso,eval(input())
é apenasinput()
em Python 2.