Imprimir tablas de multiplicar por entrada


11

En este desafío, debe imprimir tablas de multiplicación por entrada. Aquí hay algunos ejemplos:

Input: 2 

Output: 
0 2  4 6 8  10  12  14  16  18  20

Input: 20

Output: 20 40 60 80 100 120 140 160 180 200

Reglas

  1. El código más corto en bytes gana.

  2. Este desafío es un código de golf, sigue las reglas generales del ( )

  3. Si, solo si, su código no puede imprimir el número, puede usar letras. Aquí hay un ejemplo:

    Entrada: B

    Salida: BDFHJLNPRT

  4. Puede elegir comenzar desde 0 o su número (como 20). Puedes elegir si poner espacios o no. El desafío es gratis, solo tome una entrada e imprima tablas de multiplicar.

  5. Su salida debe enumerar los primeros 10 miembros de la tabla de tiempos para el número dado. Puede omitir 0 * n.


99
Su primer ejemplo tiene múltiplos de 0 a 10, el segundo de 1 a 10. ¿Podemos elegir cualquiera de estos o uno de ellos es un error tipográfico? Además, ¿la salida tiene que estar separada por espacios o podemos usar otros formatos de lista? (Si solo son espacios, el número de espacios es un poco aleatorio en su ejemplo.)
Martin Ender

Puede elegir comenzar desde 0 o su número (como 20). Puedes elegir si poner espacios o no. El desafío es gratis, solo tome una entrada e imprima tablas de multiplicar.
Rizze

44
Bienvenido a PPCG! Es agradable ver un desafío bastante simple, ya que no tenemos estos suficientes, aunque en el futuro agregaría más información. Como: De los casos de prueba, parece que solo necesitamos generar 10 números, pero no veo esto especificado. ¿Necesitamos apoyar la entrada negativa? ¿Por qué hay dos espacios entre 2 y 4? ¿Por qué el primer caso de prueba tiene el 0 en su salida? (Lo que lo convierte en 11 números de salida en lugar de 10). etc. etc. Además, el Sandbox para los desafíos propuestos es un buen lugar para publicar primero para perfeccionar el desafío
Kevin Cruijssen

Bajo la regla 3, ¿cuál debería ser el resultado C? ¿Qué tal Z?
Lynn

1
Cuál es exactamente la salida, las reglas normales tienden a permitir que una función devuelva su salida como una lista en lugar de imprimirla en STDOUT.
Brad Gilbert b2gills

Respuestas:



10

C #, 105 96 67 56 bytes

Ahora que sé cómo funciona lambda en C #, aquí hay una actualización de mi primera respuesta:

n=>{for(int i=0;i++<10;)System.Console.Write(i*n+" ");};

Ahorra 11 bytes.


Primera publicación, por favor perdóname por cualquier cosa que haya hecho mal. Además, siéntase libre de darme consejos de golf, ya que realmente no lo he probado antes.

void c(int n){for(int i=0;i++<10;){System.Console.Write(i*n+" ");}}

Sin golf:

void c(int n)
{
    for (int i = 0; i++ < 10 ; )
    {
        System.Console.Write(i*n+" ");
    }
}

Gracias Jonathan Allan, no puedo agregar comentarios todavía. Y gracias Kevin Cruijssen. Supuse que siempre tenía que incluir todo el programa a menos que la pregunta especificara que se permitían fragmentos. ¿También podría dejar de lado el sistema? ¿Llamar para imprimir a la consola en este caso, o están utilizando / importaciones requeridas entonces?


1
Bienvenido a PPCG! Puedes eliminar la clase, solo la función principal es requerida por las reglas de golf :)
Jonathan Allan

1
@JonathanAllan No solo eso, sino que con esas mismas reglas también puedes crear un método separado sin Mainusarlo por completo. Es decir, void f(int n){for(int i=0;i++<10;){System.Console.Write(i*n+" ");}}y de hecho, ¡bienvenido a PPCG!
Kevin Cruijssen


9

Jalea , 3 bytes

⁵R×

Pruébelo en TryItOnline
o en los primeros 256 casos, bien alineados, también en TryItOnline

¿Cómo?

⁵R× - main link takes one argument, n
⁵   - literal 10
 R  - range [1,2,...,10]
  × - multiply by input (implicit vectorization)

Me encantaría aprender Jelly, pero la mitad de los comandos no se procesan para mí, por lo que sería inútil: D
Beta Decay

@BetaDecay No puedo escribir la mayoría de ellos y no se procesan para mí en ningún editor de texto o en mi línea cmd :( - Sin embargo, se procesan bien en Firefox en mi máquina con Windows 7.
Jonathan Allan

Tú y Emigma están ganando.
Rizze

@BetaDecay: podría ayudarlo a descargar y (re) instalar la fuente DejaVu Sans Mono (ahora puedo ver casi todos los caracteres en notepad ++ y TIO a través de Firefox ahora también lo está usando y muestra todos los caracteres)
Jonathan Allan

Exactamente lo que pensaba, +1.
Erik the Outgolfer

8

Clojure, 70 80 bytes

Esta es mi primera publicación en CG, espero que la entrada esté bien:

70 bytes

(defn -main[& a](println(map #(* %(read-string(first a)))(range 10))))

80 bytes

(defn -main[& a](let[n(read-string(first a))](println(map #(* % n)(range 10)))))

El programa leerá un número como argumento estándar y mostrará el resultado:

Salida

lein run 10
(0 10 20 30 40 50 60 70 80 90)

55
¡Bienvenidos! Esa es una gran primera respuesta!
mbomb007


6

Perl, 19 bytes

Incluye +1 para -n

Ejecutar con la entrada en STDIN:

perl -M5.1010 -n table.pl <<< 8

table.pl:

say$_*$`for/$/..10

Probablemente quisiste decir -n? o me perdí algo?
Dada

@Dada: correcto, lo combinó con otra versión. Corregido
Ton Hospel

5

Haskell, 16 bytes

(<$>[1..10]).(*)

Ejemplo de uso: (<$>[1..10]).(*) $ 4-> [4,8,12,16,20,24,28,32,36,40].

Pointfree versión de: f n = map (n*) [1..10].


¿Qué <$>hacer?
Cyoce

@Cyoce: <$>es una versión infija de fmap(o mapcuando se usa con una lista), es decir, aplicó la función dada como su primer argumento a cada elemento de la lista. func <$> list= fmap func list= map func list.
nimi



4

PHP, 34 bytes

(34 bytes)

for(;$i++<10;)echo$i*$argv[1].' ';

(34 bytes)

for(;++$i%11;)echo$i*$argv[1].' ';

(34 bytes)

while($i++<10)echo$i*$argv[1].' ';

(35 bytes)

for(;$i++<10;)echo' '.$a+=$argv[1];

( 41 40 bytes)

<?=join(' ',range(0,10*$a=$argv[1],$a));

<?=join(' ',range($a=$argv[1],10*$a,$a));

(44 bytes)

foreach(range(1,10)as$i)echo$i*$argv[1].' ';

El uso de uno range()con $steppuede ser menor si se inicia desde 0: <?=join(' ',range(0,10*$a=$argv[1],$a));.
manatwork

La regla que permite comenzar desde 0 no se estableció cuando lo hice, pero tienes razón; Actualizo este.
Crypto

4

J, 8 bytes

(i.10)&*

Este es el intervalo de 0al 9incluido ( i.10) unido ( &ingenio) la función de multiplicación ( *). Esto comienza en cero.

Casos de prueba

   k =: (i.10)&*
   k 2
0 2 4 6 8 10 12 14 16 18
   k 10
0 10 20 30 40 50 60 70 80 90
   k"0 i.10
0 0  0  0  0  0  0  0  0  0
0 1  2  3  4  5  6  7  8  9
0 2  4  6  8 10 12 14 16 18
0 3  6  9 12 15 18 21 24 27
0 4  8 12 16 20 24 28 32 36
0 5 10 15 20 25 30 35 40 45
0 6 12 18 24 30 36 42 48 54
0 7 14 21 28 35 42 49 56 63
0 8 16 24 32 40 48 56 64 72
0 9 18 27 36 45 54 63 72 81

3

Zsh, 19 caracteres

echo {0..${1}0..$1}

Ejecución de muestra:
(Esta es la forma interactiva de ejecutarla, equivalente a zsh scriptfile.sh 20).

~ % set -- 20          

~ % echo {0..${1}0..$1}
0 20 40 60 80 100 120 140 160 180 200

3

Python 3, 52 33 30 bytes

lambda n:list(range(0,11*n,n))

3 bytes guardados gracias a @manatwork

Formatear la salida es visiblemente innecesario


1
Pedir prestado de mi respuesta de shell:lambda n:" ".join(map(str,range(0,n*11,n)))
manatwork

@manatwork uso Python 3
TuxCrafting

1
Utiliza Python 3 pero puede guardar 6 bytes utilizando Python 2:lambda n:range(0,11*n,n)
Jonathan Allan

3

Mata, 15 29 bytes

args i
mata
A=1..10
B=`i'*A
B

Mata es el lenguaje de programación matricial en el paquete de estadísticas comerciales de Stata. El código crea una matriz, se multiplica por la entrada (2 en este caso) y las salidas de la nueva matriz

Salida

        1    2    3    4    5    6    7    8    9   10
    +---------------------------------------------------+
  1 |   2    4    6    8   10   12   14   16   18   20  |
    +---------------------------------------------------+

1
¿Cómo es tomar entrada? También debe ser reutilizable.
Jonathan Allan

1
OK, he editado para aclarar la recepción de la entrada
f1rstguess


3

Stata, 46 bytes

args i
set obs `i'
gen x=_n
gen y=x*`i'
list y

Salida

Para i = 15

    +-----+
    |   y |
    |-----|
 1. |  15 |
 2. |  30 |
 3. |  45 |
 4. |  60 |
 5. |  75 |
    |-----|
 6. |  90 |
 7. | 105 |
 8. | 120 |
 9. | 135 |
 10.| 150 |
    |-----|
 11.| 165 |
 12.| 180 |
 13.| 195 |
 14.| 210 |
 15.| 225 |

Aquí puedes usar algunos shorthands adicionales: ob para obs, g para gen yl para lista. Además, ¿es posible tener x be _n * `i 'en lugar de usar dos variables? Nunca había visto args antes en STATA. ¡Gracias por mostrarme algo nuevo!
comentarios

3

Cheddar , 20 bytes

n->(|>11).map(n&(*))

Yay para funcional \ o /

No creo que esto necesite explicación, pero si me gustaría agregar una, solo pregunte :)


Debería aprender Cheddar. Y que hace n&(*)? Supongo que (*)significa lo mismo que significa que soy haskell, pero ¿qué hace &en ese contexto?
Cyoce

@Cyoce está uniendo
Downgoat

3

Java 7, 61 57 bytes

void c(int n){for(int i=0;i++<10;)System.out.print(i*n);}

Sin golf y casos de prueba:

Pruébalo aquí.

class M{
  static void c(int n){
    for(int i = 0; i++ < 10; ){
      System.out.print(i*n);
    }
  }

  public static void main(String[] a){
    c(2);
    System.out.println();
    c(20);
  }
}

Salida:

2468101214161820
20406080100120140160180200

Los espacios son opcionales, System.out.print (i * n); ahorraría 4 bytes
CameronD17

@ CameronD17 Ah, esa regla se ha agregado después de que hice esta respuesta, pero gracias por mencionarlo. Lo he quitado
Kevin Cruijssen

3

JavaScript (ES6), 33 31 bytes

f=(x,i=11)=>--i&&f(x,i)+" "+x*i

Es una solución recursiva.



3

Scala, 24 bytes

(n:Int)=>0 to 10 map(n*)

Explicación:

(n:Int)=> //define an anonymous function
  0 to 10 //create a range from 0 to 10
  map(n*) //multiply each element by the input

2

Brachylog , 12 bytes

,10y:[?]z:*a

Pruébalo en línea!

Necesito implementar eso I * [A, B, C] = [I*A, I*B, I*C]...

Explicación

,10y            The range [0, 1, …, 10]
    :[?]z       The list [[0, Input], [1, Input], …, [10, Input]]
         :*a    The list [0*Input, 1*Input, …, 10*Input]

2

brainf *** , 84 bytes

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

Espera la entrada como un solo byte (ya que BF solo puede operar en números hasta 255) y devuelve los resultados como bytes individuales. Algunos valores pueden parecer ASCII, pero no deben tratarse como tales; mira la representación decimal de los bytes devueltos.

Pruébalo en línea!


Puede guardar 5 bytes haciendo>, [> +> ++> +++> ++++> +++++> ++++++> +++++++> ++++ ++++> +++++++++> ++++++++++ [<]> -]> [.>]
Jeff

@Jeff Desafortunadamente, eso interrumpe cualquier entrada que sea superior a 25 porque el byte se desbordará, restableciéndose a 0. El desbordamiento 0se iguala [<], lo que hace que todo el proceso se repita infinitamente.
Steven H.

Correcto, pero desbordar bytes resulta en salidas incorrectas con su código de todos modos, ¿no?
Jeff

1
@Jeff Son salidas correctas, solo están operando en el mod 255.
Steven H.

2

JavaScript, 42 bytes

function f(a){for(i=0;i<11;i++)alert(i*a)}

No sé muy bien JS, ¿puedes mover el incremento a la parte de prueba de for?
Jonathan Allan

Lo edité Ahora está bien.
Rizze

Ahora alerta con alert ().
Rizze

Me estaba alertando sin alerta: aquí , lo retiro, necesito hacer clic en "Ejecutar", no solo "intentar" para volver a cargarlo
Jonathan Allan, el

1
@JonathanAllan ¿Qué?
Rizze

2

MATLAB, 12 bytes

@(x)x*[1:10]

Realmente no mucho. Una función anónima que toma xcomo entrada y la multiplica por el vector [1:10]. Se muestra comoans = 2 4 6 .. . También funciona en Octave.

Pruébalo en línea .


2

PowerShell v2 +, 23 bytes

param($n)1..10|%{$_*$n}

Toma datos a través del argumento de la línea de comandos, recorre el rango 1en 10, cada bucle coloca ese número *$nen la tubería. La salida implícita Write-Outputal final de la ejecución del programa da como resultado valores separados por nueva línea.

PS C:\Tools\Scripts\golfing> .\multiplication-table.ps1 2
2
4
6
8
10
12
14
16
18
20

PS C:\Tools\Scripts\golfing> .\multiplication-table.ps1 20
20
40
60
80
100
120
140
160
180
200

2

C89, 44 bytes

k;main(n){for(k=n*11;k-=n;)printf("%d ",k);}

Sin golf:

k;
main(n)
{
    for (k=n*11 ; k-=n ;)
        printf("%d ", k);
}

Compilar y ejecutar con (entrada 4)

gcc -ansi main.c && ./a.out 2 3 4

Salida

40 36 32 28 24 20 16 12 8 4 

Pruébalo

Demo


2

Pyke, 5 bytes

TSQm*

Pruébalo aquí!

O TQm*si se le permite hacer números en 0-9lugar de1-10

O TL*si nos estamos volviendo no competitivos.


2

Javascript (ES6), 34 31 bytes

a=>{for(i=0;i<11;)alert(++i*a)}
(a)=>{for(i=0;i<11;++i)alert(i*a)}

Guardado 3 bytes gracias a grizzly.


Por lo menos no necesitas los paréntesis alrededor del a, pero creo que también es posible ser creativo en cuanto a la posición del ++.
Neil

2

Cubix , 24 bytes

;;..I1.N-?W.;;)W@/So..*O

Cubix es un esolang bidimensional basado en pila. Cubix es diferente de otros idiomas 2D en que el código fuente se envuelve alrededor del exterior de un cubo.

¡Pruébalo en línea!Nota: tendrá que copiar y pegar el código, y hay un retraso de 50 ms entre iteraciones.

Explicación

Lo primero que hace el intérprete es averiguar el cubo más pequeño en el que se ajustará el código. En este caso, la longitud del borde es 1. Luego, el código se rellena sin operaciones .hasta que se llenen los seis lados. El espacio en blanco se elimina antes del procesamiento, por lo que este código es idéntico al anterior:

    ; ;
    . .
I 1 . N - ? W .
; ; ) W @ / S o
    . .
    * O

Aquí hay uno un poco más corto que usa las nuevas opciones de pilaI.0.WrN;-!@vrW>r)*O;o
MickyT
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.