Imprime números del 1 al 10


43

Este podría ser un desafío muy simple, pero me sorprende que aún no se haya hecho en code-golf:

Imprima todos los enteros del 1 al 10 inclusive en orden ascendente a la salida estándar.

Su formato de salida puede ser el que sea compatible con su idioma. Esto incluye separadores arbitrarios (comas, punto y coma, líneas nuevas, combinaciones de esos, etc., pero sin dígitos), y prefijos y postfijos (como [...]). Sin embargo, no puede generar ningún otro número que no sea del 1 al 10. Su programa no puede tomar ninguna entrada. Las lagunas estándar no están permitidas.

Este es el , ¡así que la respuesta más corta en bytes gana!

Tabla de clasificación


10
Relacionado (¿duplicado?)
Luis Mendo

17
Si el único cambio es codificar un solo parámetro, entonces eso cae bajo la bandera de " cambio trivial ", y según los estándares de este sitio todavía cuenta como un engaño.
Peter Taylor

10
@PeterTaylor El otro desafío tiene un gran problema con los límites enteros. La forma en que se especifica cada lenguaje TC que no tiene enteros de 64 bits necesita implementarlos. (Y eso afecta a muchos idiomas.)
Martin Ender

17
@xnor Francamente, prefiero cerrar el otro desafío como un duplicado de este. El requisito prácticamente lo arruina.
Dennis

99
No puedo creer que cada una de las (actualmente) 71 respuestas asume que la base debe ser decimal ...
Skippy le Grand Gourou

Respuestas:


69

C, 36 bytes

main(i){while(printf("%d ",i++)<3);}

Esto funciona porque el ciclo termina después del primer número de 2 dígitos.


1
No se menciona la posibilidad de pasar parámetros a la función.
Ash Burlaczenko

10
@AshBurlaczenko ¿De qué estás hablando? Esta es una técnica estándar en el golf para inicializar un int a 1. No necesita pasar ningún argumento de línea de comando. De hecho, hacerlo hará que el programa produzca la salida incorrecta.
xsot

66
@AshBurlaczenko Por consenso , hemos acordado que los programas pueden asumir que no se llamarán con una entrada innecesaria (en este caso, sin argumentos de línea de comando adicionales, más allá del programa en sí). Eso significa que iaquí siempre habrá 1 cuando se ejecute este programa. ¿Querías decir otra cosa?
FryAmTheEggman

2
Lo siento, no he escrito C pero asumí que su valor predeterminado sería 0 como en todos los idiomas que he usado.
Ash Burlaczenko

17
@AshBurlaczenko En C, el primer argumento para main es el número de argumentos de la línea de comandos (incluido el nombre del ejecutable). Como no se pasan argumentos adicionales, ese recuento es 1. El segundo argumento para main es la lista real de argumentos de la línea de comandos, pero ese argumento se ignora en este programa.
Chris Bouchard

45

HTML, 44 bytes

<ol><li><li><li><li><li><li><li><li><li><li>

Esto es más largo que codificar la salida, pero es más interesante de esta manera. Crea una lista ordenada ( <ol>) con diez elementos de lista vacíos ( <li>). Por defecto, las listas ordenadas están delimitadas por números decimales que comienzan con 1 y un punto.

HTML5 es muy indulgente con respecto a las etiquetas no cerradas, por lo que cierra las lietiquetas implícitamente.


55
+1 por abusar del perdón de HTML5 (?).
HyperNeutrino

1
Sangre fría. Me encanta.
ricdesi

1
En realidad, NinjaBearMonkey y @HyperNeutrino, esto no es "perdón" per se; HTML5 es bastante explícito sobre qué etiquetas se pueden dejar sin cerrar. Es solo que las listas y los elementos de la lista son dos.
KRyan

43

Bash, 12 caracteres

echo {1..10}

Ejecución de muestra:

bash-4.3$ echo {1..10}
1 2 3 4 5 6 7 8 9 10

Bash + coreutils, 10 caracteres

(Solo trato de ser divertido y usarlo ': No such file or directory↵ls: cannot access 'como separador).

ls {1..10}

Ejecución de muestra:

bash-4.3$ ls {1..10}
ls: cannot access '1': No such file or directory
ls: cannot access '2': No such file or directory
ls: cannot access '3': No such file or directory
ls: cannot access '4': No such file or directory
ls: cannot access '5': No such file or directory
ls: cannot access '6': No such file or directory
ls: cannot access '7': No such file or directory
ls: cannot access '8': No such file or directory
ls: cannot access '9': No such file or directory
ls: cannot access '10': No such file or directory

Bash + coreutils, 6 caracteres

(Solo trato de ser aburrido. O no solo intentarlo ...)

seq 10

Ejecución de muestra:

bash-4.3$ seq 10
1
2
3
4
5
6
7
8
9
10

77
El último es solo seq / coreutils, bash no involucrado.
hyde

1
@hyde: Sin bash, la llamada a seq no sería posible, ¿verdad?
Mega Man

En mi visión, si dejamos de lado bash, entonces seqsería el intérprete. ¿Pero entonces 10es un programa válido en lenguaje "seq"?
manatwork

Nunca intente esto en su consola: echo {1..1000000000} Si tiene curiosidad, hágalo bajo su propio riesgo.
Brain90

@ Brain90, no hay peligro en mi pobre máquina de 8Gb RAM. ;) "Bash: expansión de llaves: no se pudo asignar memoria para 1000000000 elementos". Al menos con bash4.3.46.
manatwork

26

Jalea, 2 bytes

⁵R

Explicación

⁵  Return the fifth command line argument or 10
 R Range
   Implicit output

77
⁵R, dos bytes
Luis Mendo

13
¿Por qué alguien inventaría un lenguaje en el que un comando devuelva el quinto argumento o el número entero 10? ..
Andreï Kostyrka

14
@ AndreïKostyrka Porque Dennis
TuxCrafting

1
¿Hay una codificación donde solo hay un byte? Como son 3 bytes en UTF-8, la longitud del programa debe ser de 4 bytes.
Radovan Garabík

2
@ RadovanGarabík Jelly usa su propia página de códigos
TuxCrafting

20

Brainfuck, 58 bytes

-[----->+>+<<]>--<+++++[<++<++>>-]<<-[->>>.+<<.<]>>>>--.-.

Pruébalo en línea!


1
Pásame, y más corto también, publicará el mío de todos modos, ya que no creo que hayamos usado el mismo truco. Have my +1 :)
Katenkyo

Estuve cerca con 67 bytes, pero no lo suficientemente cerca:++++++[>++++++++<-]>>>++++++++++[-<+<<+>>>]<[-<.+<.>>]<<-[>-<-]>.-.
Julian Lachniet


16

LOLCODE, 79 bytes

IM IN YR l UPPIN YR v TIL BOTH SAEM v AN 10
VISIBLE SUM OF v AN 1
IM OUTTA YR l

Este código puede necesitar algunos ajustes dependiendo del compilador que esté utilizando. Algunos quieren que agregue HAI / KTHXBYE, algunos quieren que declare la variable antes de tiempo. Un compilador se rompe si el nombre del bucle es más corto que dos caracteres, aunque el nombre del bucle nunca se use.


15

CJam, 6 5 bytes

A,:)`

1 byte guardado gracias a Luis Mendo

Salida: [1 2 3 4 5 6 7 8 9 10]

Explicacion:

A,      e# Push a list from 0 to 9.
  :)    e# Increment all values.
    `   e# Stringify the list.

Pruébalo en línea!


3
Me gusta el smileyface. (¿No hay un error en su explicación: A, crea una lista de 0 a 9)
KarlKastor

14

R, 4 bytes

2:10

El ":" es probablemente uno de los comandos R más utilizados. Mejora de Barranka en los comentarios.


2
Si requieren imprimir una cadena, no devolver un vector, considere cat(1:10).
Andreï Kostyrka

¿Hay un espacio en blanco líder?
Clashsoft

99
Dado que la salida es [1] 1 2 3 4 5 6 7 8 9 10, tal vez sería mejor 2:10, lo que dará salida[1] 2 3 4 5 6 7 8 9 10
Barranka

@Clashsoft, eso fue un error, gracias. Y sí, Barranka, buen punto: votado.
Forgottenscience

13

Rubí, 8 bytes.

Separado por nuevas líneas.

p *1..10

* Separado por nuevas líneas.
David Conrad

¿Usted puede hacer eso?
dkudriavtsev

@DmitryKudriavtsev sí, la estrella hace que el código se descomponga p 1,2,3,4,5,6,7,8,9,10y las comas lo pseparen por nuevas líneas.
Value Ink

OKAY. No pensé que el operador tenga una precedencia menor que el rango.
dkudriavtsev

11

Pyth, 2 bytes

ST

¡La primera vez que utilicé un lang de golf para responder!

Explicación:

S    1-indexed range. [1, 2, ... A].
 T   Variable. Initialized to 10. (Ten)
     Implicitly printed.

Ninja'd por segundos: /
TuxCrafting


10

En realidad, 9 bytes

19`;1+`na

Pruébalo aquí!

Explicación:

19`;1+`na

1           Push 1 to stack
 9          Push 9 to stack
  `;1+`     Push Function inside ` to stack
   ;        Push top element to stack
    1+      Add 1 to top element
       n    Run function x times (9 times)
        a   Invert stack

99
¡Bienvenido a Programming Puzzles y Code Golf!
Adnan

10

Mathematica - 13 bytes

Echo@Range@10

¡Guardado 4 bytes gracias a MartinEnder !

Salida: >> {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}


10

JavaScript (ES6), 29 bytes

alert([...`${1e11/81^14}`]+0)

Salidas 1,2,3,4,5,6,7,8,9,10. No es la respuesta más corta, pero pensé que era un cálculo divertido.


por qué noalert([...'1'+234567891]+0)
edc65

2
@ edc65 a) no es tan divertido b) no es tan corto como la respuesta de JavaScript publicada anteriormente c) ni siquiera es tan corto como alert([...'1234567891']+0).
Neil


8

DC , 12 bytes

... un poco malo ahora ...

[zzpA>L]dsLx

Desenrollado:

[   # start string constant
z   # push stack length (0 on 1st cycle)
z   # push stack length (1 on 1st cycle)
p   # print top of stack
A>L # if 10(decimal) < tos: execute L
]   # end string constant, push it
d   # duplicate the string
sL  # store a copy in L
x   # execute tos (which is the other string copy)

Una de las zoperaciones (longitud de la pila de inserción) no tiene una operación correspondiente que la tome de la pila. De esta manera, la pila crece con cada iteración en una. Esto se abusa como el contador de bucle.

Este ciclo comienza con una pila vacía, por lo que el primero zempuja 0la primera iteración para que la impresión ocurra después del segundo, lo zque corresponde a la duplicación del resultado 1+den la versión siguiente. De esta manera, la comparación debe ser más grande que 10aquí en lugar de a bigger than 11continuación.


DC , 14 bytes

Simplemente sencillo ...

1[p1+dB>L]dsLx

Desenrollado:

1   # push 1
[   # start string constant
p   # print top of stack
1+  # add 1 to tos
d   # push tos (duplicate)
B>L # if 11(decimal) < tos: execute L
]   # end string constant, push it
d   # duplicate the string
sL  # store a copy in L
x   # execute tos (which is the other string copy)

Desearía que explicaras esto = (
Evan Carroll

@EvanCarroll - Escribir dcprogramas es más fácil que explicar. Pero lo intenté ... ;-)

7

> <> , 13 bytes

01+:a)?;:nao!

Explicacion:

01+:a)?;:nao!

0                 push initial value of n on the stack
 1+               increments n
   :              duplicates n on the stack
    a             push 10 on the stack
     )            pops n and 10 of the stack, push n>10 on the stack
      ?;          if n>10, stops program execution
        :n        duplicates n on the stack in order to display it
          ao      display 10 (x0A, linefeed)
            !     skips the next instruction, which since ><> loops is the push 0

Puede verlo en acción en el intérprete en línea .


¿Podría por favor agregar una explicación?
Clashsoft

1
Ejecute el programa nao!
Cyoce

@Cyoce> <> es genial para escribir piezas de código entusiastas, tengo esta respuesta de corrector de engranaje de motocicleta en la misma línea;)
Aaron


6

J, 6 bytes

1+i.10

Salida: 1 2 3 4 5 6 7 8 9 10

Explicacion:

1+       NB. Add one to...
  i.10   NB. A range from 0 to 9.

Mi pensamiento era >:i.10, pero eso es lo mismo.
Dane

6

Haskell, 17 bytes

main=print[1..10]

Salidas [1,2,3,4,5,6,7,8,9,10].


Estoy un poco confundido aquí ... Estoy casi seguro de que debería estarlo [1..10]. No tengo acceso a un compilador de haskell, pero lo comprobaré por la mañana.
Zwei

Los rangos @Zwei no incluyen su límite superior en Haskell.
C. Quilley

1
@ C.Quilley Lo hacen totalmente. Quizás estés pensando en Python.
xnor

Huh, estaba seguro de haber probado este código. Disculpas por la afirmación anterior.
C. Quilley

1
No creo que necesites main = part; el resto tiene el tipo de un programa haskell, IO (). Corrígeme si hay una decisión específica en contra de esto.
Lazersmoke

6

Fuzzy Octo Guacamole, 7 bytes

1.25*$:

Multiplica 2*5, toma el rango de eso 1e imprime toda la pila.

1.25*$:
1.      # Push 1 to the stack and switch stacks
  25*   # Push 10 to the stack
     $  # Push every number in the inclusive range on the top of inactive stack and top of active stack ([1,2,3,4,5,6,7,8,9,10])
      : # Print the stack, which is a list containing the numbers.

6

PowerShell, 5 bytes

1..10

Crea un rango dinámico con el ..operador desde 1hasta 10, luego esa matriz se deja en la tubería. La salida es implícita. El .ToString()método predeterminado de una matriz es nueva línea, por lo que se separará de nueva línea cuando se ejecute en un shell limpio.


6

Java 7, 53 51 52 bytes (bucle)

void l(){for(int i=0;++i<11;)System.out.println(i);}

Alternativa de 51 bytes (codificado es más corto ..., pero se considera un vacío predeterminado , por lo que no está permitido)

void h(){System.out.print("1 2 3 4 5 6 7 8 9 10");}

Alternativa de 54 bytes (recursiva):

int i=1;void r(){System.out.println(i);if(i++<10)r();}

Ungolfed y código de prueba para los tres:

Pruébalo aquí

class Main{
  static void h(){
    System.out.print("1 2 3 4 5 6 7 8 9 10");
  }      

  static void l(){
    for(int i=0; ++i < 11;){
      System.out.println(i);
    }
  }

  static int i = 1;
  static void r(){
    System.out.println(i);
    if(i++ < 10){
      r();
    }
  }

  public static void main(String[] a){
    h();
    System.out.println();
    l();
    System.out.println();
    r();
  }
}

EDITAR: Para divertirse: como señaló correctamente @SkippyLeGrandGourou , la base del 1 al 10 no se especifica en la pregunta, por lo que aquí hay un código Java (sin código de golf) que genera del 1 al 10 en las bases 2 a 10:

Pruébalo aquí

BASE-2: 1 10 
BASE-3: 1 2 10 
BASE-4: 1 2 3 10 
BASE-5: 1 2 3 4 10 
BASE-6: 1 2 3 4 5 10 
BASE-7: 1 2 3 4 5 6 10 
BASE-8: 1 2 3 4 5 6 7 10 
BASE-9: 1 2 3 4 5 6 7 8 10 
BASE-10: 1 2 3 4 5 6 7 8 9 10 

Loop puede ser for(int i=1;i<11;)System.out.println(i++), guarda un byte.
Clashsoft

@ zyabin101 Cambió el orden para que la respuesta codificada no sea competitiva. Sin embargo, todavía lo dejé en la respuesta, ya que es bastante divertido (y triste) que codificar es la forma más corta de imprimir 1-10 en Java 7 ..
Kevin Cruijssen

2
@ zyabin101 Excepto cuando la pregunta está etiquetada kolmogorov-complex .
Neil

@Neil Oh, cierto. o_o
user48538

1
¡Java 8 es el claro ganador aquí gracias a lambdas! ()->java.util.stream.IntStream.range(1,11).forEach(System.out::println). ¿Por qué dices que es más largo? Es Java 8 ... ¡Java 8 es más corto por defecto! ¡Ni siquiera puse llaves antes y después del código! ¡Incluso puedo contar hasta 98 ​​sin obtener un personaje extra! ¿Ver? Java 8 reglas!
Olivier Grégoire

6

Perl 6, 12 bytes

say @(1..10)

Se @()necesita para convertir a una matriz

Solución alternativa:

say @(^10+1)

Construye un rango [0,10) luego agrega uno, luego lo convierte en una matriz.


Para Perl 5.10, 14 bytes y casi como el suyo:say for(1..10)
Paul Picard

@PaulPicard ¡publícalo! Perl 5 es un idioma diferente.
Ven

¿Puedes quitar el espacio para say@(1..10)?
Cyoce

@Cyoce por desgracia no, es un error.
Ven

10 bytes:say 1...10
nwellnhof

5

Python2 - 19 17 bytes

print range(1,11)

Guardado 1 byte, gracias a KevinLau, ¡no a Kenny !

Salida: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]


Usar en rangelugar de xrange, suponiendo Python 2. De hecho, esta versión actual no parece funcionar en mi máquina en ninguna versión de Python.
Value Ink el

@ KevinLau-notKenny Podría haber jurado que intenté eso, y no conseguí nada que STDOUT. ¡Gracias!
Yytsi

Importante: es solo Python 2
Mega Man

1
@ABcDexter Lo comprobé, muy bien! La razón por la que no usé Python3 fue porque me vi obligado a lanzar el rangeobjeto que devuelve un iterador a una lista.
Yytsi

1
@ TuukkaX Sí, exactamente. Probaré otros idiomas también. Gracias :).
ABcDexter

5

Vim, 12 bytes

i1<Esc>qqYp<C-a>q8@q

Salidas

1
2
3
4
5
6
7
8
9
10

Explicación:

i1<Esc>qqYp<C-a>q8@qZZ
       qqYp<C-a>q      -- Macro q: duplicate line and increment (6)
i1<Esc>                -- Insert 1 (3)
                 8@q   -- Run macro q 8 times (3)

Probado en Neovim 0.1.4, que hasta donde sé es compatible con Vim.


Agradable. Se me ocurrió iYp<C-v><C-a>1<Esc>d^9@-ZZ. El mismo recuento de bytes.
primo


5

MarioLANG , 34 27 25 bytes

+<
:"
+
:
+
:
+
:
+
:!
=#

Pruébalo en línea!

Gracias a Jo Rey de -7 -9 bytes!

código:

Mario se cae, incrementando y diciendo su número cinco veces, luego pisa el elevador, sube y vuelve a caer, incrementando y diciendo su número otras cinco veces. Luego camina hacia la izquierda y se cae del código.

14 bytes más corto que la forma fácil:

39 bytes

+:+:+:+:+:+:+:+:+:+
==================:

Pruébalo en línea!


Gracias. A veces simplemente no puedes ver el bosque por los árboles.
Dorian


4

Groovy, 11 personajes

print 1..10

Ejecución de muestra:

bash-4.3$ groovy -e 'print 1..10'
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
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.