"¡El Premio Nobel de Matemáticas fue otorgado a un profesor de California que descubrió un nuevo número! El número está desvanecido, que según él pertenece entre 6 y 7". --George Carlin
En este desafío, imprimirá todos los números enteros, inclusive, dentro del rango de entrada dado. Imprima números ascendentes o descendentes según su orden de entrada. Es decir, para entrada [n1, n2]
, imprima ascendente si n1 < n2
, descendente si n1 > n2
.
Como bleen
ahora es un número entero, puede usarse como entrada. También debe incluirse en la salida, entre 6
y 7
donde corresponda. También tenga en cuenta que -bleen
existe entre -7 y -6.
Entrada
Dos enteros [n1, n2]
en el rango [-10, 10], inclusive, a través de la entrada de su lenguaje de programación de elección.
(¡La entrada también puede contener bleen
y -bleen
!)
Salida
Imprima todos los números enteros que comienzan n1
y terminan en n2
, incluido el recién descubierto bleen
entre 6 y 7. La salida puede ser un rango de números separados por caracteres en alguna forma que su idioma admite, es decir, separados por comas o espacios. Un espacio final de salida está bien.
Ejemplos
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 adicionales
Puede escribir un programa o función y utilizar cualquier método estándar para recibir entradas y proporcionar salidas.
Puede usar cualquier lenguaje de programación , pero las lagunas estándar no están permitidas.
Este es el código de golf , por lo que gana la respuesta válida más corta, medida en bytes .
Respuestas:
Python 3,
132130 bytesToma entrada en el siguiente formato de ejemplo:
fuente
[-10,10]
?bleen=7/m
para aclarar sin penalización de personajeeval
que se traduzcableen
al valor correcto.Rubí,
11410098 bytesLa entrada es una matriz con
[n1, n2]
. (Si deben ser dos argumentos separados, +1 byte para cambiar la función arg deg
a*g
. Bleen debe ser una cadena,."bleen"
Emite una matriz del rango. Sugerido por @Jordan con su (?) Versión inicial que otorga -7 bytes, pero también jugué 7 más después de eso.Pruébalo en línea.
Versión original del programa completo que lee la entrada de
ARGV
:fuente
.map &:to_s
6 bytes y guardarlos, y puede guardar uno más cambiando la inicialización dea
aa=*-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]}
Pyth , 35 bytes
Banco de pruebas.
La primera parte, es decir
K++L\-P_J++`M7"bleen"`M}7TJ
, genera esta matriz:y luego lo almacena en
K
.La segunda parte, es decir
@LK}FxLK
, encuentra la sublista indicada por la entrada.fuente
Python 3,
157145123108115139161158153 bytesGuardado 22 gracias a Lynn. 17 salvados gracias a shooqie. 3 guardados gracias a ljeabmreosn. 5 guardados gracias a Geoff Reedy.
Entrada como
'-10', '8'
. Las propinas son bienvenidas para un principiante.Se agregó 7 a la cuenta
-bleen
. Se agregaron 15 para tener en cuenta la entrada inversa como'8','-10'
. Se ha añadido una gran 21 para dar cuenta de las señales de entrada invertida para lableen
frente-bleen
.fuente
l.index('-6')
yl.index('7')
deberían ser constantes, ¿no?l=[str(i)for i in range(-10,11)]
->l=list(map(str,range(-10,11)))
l=list(range(-10,11))
funciona bienfor i in(4,18):l.insert(i,'bleen')
.'bleen'
lugar de un'-bleen','bleen'
Rubí, 141 bytes
Sin golf
fuente
Lote,
239186bytesObras de bucle a partir
3*%1
de3*%3
y luego dividiendo por tres y la impresión de los números sin residuo, sin embargo el establecimientobleen
de ese número mágico causa de desbordamiento de entero y el valor20
se utiliza en su lugar. Esto se imprime en el punto apropiado del bucle.fuente
-bleen
. Bah.bleen.bat bleen -bleen
tal vez?JavaScript (ES6), 158
Buen desafío, difícil de golf. Probablemente, los métodos de rango utilizados en las respuestas de Python y Ruby podrían obtener mejores resultados incluso en JS.
Menos golf
Prueba
fuente
Swift 2.2, 342 bytes
Pruebe esto utilizando Swift Sandbox de IBM
Sin golf
fuente
Java, 271 bytes
Sin golfos con casos de prueba:
Llamada b (inicio, fin). Debido a que los parámetros son cadenas, se necesita mucho espacio para convertirlos en int. Esencialmente, el programa trata 7 y -7 como bleen y -bleen.
fuente
p
se puede cambiar a la siguiente para ahorrar 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;}
. Además, es posible que desee indicar que esto es Java 7 y tal vez agregar una ideona .Java 7, 251 bytes
Enfoque diferente que es más corto que la respuesta Java 7 ya existente .
Además, es lamentable que los parámetros potencialmente no estén en orden, lo que agrega algunos bytes para intercambiarlos.
Sin golf y casos de prueba:
Pruébalo aquí
Salida:
fuente
Scala, 223 bytes
fuente
JavaScript (ES6), 178 bytes
Intentalo
EDITAR: Solución para el orden inverso. Gracias Patrick, se perdió esta condición
fuente
Python 3, 126 bytes
La entrada está en la forma
-5, 'bleen'
fuente
R ,
110107 bytesGracias a Cyoce por jugar al golf 3 bytes.
Construye toda la lista en orden, selecciona las relevantes. La función en el medio llamada "b" parecía la forma más fácil de lograrlo. Aplicar, etc.
fuente
Javascript (usando una biblioteca externa) (343 bytes)
Enlace a lib: https://github.com/mvegh1/Enumerable
Captura de pantalla:
fuente
Python 2, 100 bytes
Las primeras cuatro líneas generan la lista
[-10, -9, -8, -7, 'bleen', -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 'bleen', 7, 8, 9, 10]
. La siguiente línea obtiene entrada y la almacena ens
ye
. Las dos últimas líneas usan una.index()
notación de corte de lista para obtener el rango correcto.Funciona de la misma manera que la respuesta de Leaky Nun pero se desarrolló de forma independiente. Robó un método de entrada de orlp.
Sin golf:
fuente
-7
y-6
es-bleen
, nobleen
. Aunque hemos encontrado un nuevo número, las reglas básicas del álgebra deben permanecer constantes:0
es el único número que es su propio inverso aditivo, en virtud de ser el elemento de identidad aditivo. Además,eval(input())
solo estáinput()
en Python 2.