Imprimir tabelas de multiplicação por entrada


11

Neste desafio, você deve imprimir tabelas de multiplicação por entrada. Aqui estão alguns exemplos:

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

Regras

  1. O código mais curto em bytes vence.

  2. Este desafio é um código de golfe, segue as regras gerais do ( )

  3. Se, apenas se, seu código não puder imprimir o número, você poderá usar letras. Aqui está um exemplo:

    Entrada: B

    Saída: BDFHJLNPRT

  4. Você pode optar por começar do 0 ou do seu número (como 20). Você pode escolher se coloca espaços ou não. O desafio é gratuito, basta dar uma entrada e imprimir tabelas de multiplicação.

  5. Sua saída deve listar os 10 primeiros membros da tabela de tempos para o número fornecido. Você pode deixar de fora 0 * n.


9
Seu primeiro exemplo tem múltiplos de 0 a 10, o segundo de 1 a 10. Podemos escolher um desses ou um deles é um erro de digitação? Além disso, a saída precisa ser separada por espaço ou podemos usar outros formatos de lista? (Se apenas espaços, o número de espaços é um pouco aleatório no seu exemplo.)
Martin Ender

Você pode optar por começar do 0 ou do seu número (como 20). Você pode escolher se coloca espaços ou não. O desafio é gratuito, basta dar uma entrada e imprimir tabelas de multiplicação.
Rizze 7/09/16

4
Bem-vindo ao PPCG! É bom ver um desafio bastante simples, já que não temos o suficiente, embora no futuro eu acrescentasse mais informações. Como: nos casos de teste, parece que só precisamos produzir 10 números, mas não vejo isso especificado. Precisamos apoiar dados negativos? Por que existem dois espaços entre 2 e 4? Por que o primeiro caso de teste tem 0 na saída (tornando 11 números de saída em vez de 10). etc. etc. Além disso, o Sandbox para os desafios propostos é um bom lugar para publicar primeiro a aperfeiçoar o desafio
Kevin Cruijssen

Sob a regra 3, qual deve ser a saída C? Que tal Z?
Lynn

1
O que exatamente é a saída, as regras normais tendem a permitir que uma função retorne sua saída como uma lista, em vez de imprimi-las em STDOUT.
Brad Gilbert b2gills

Respostas:



10

C #, 105 96 67 56 bytes

Agora que eu sei como o lambda funciona em C #, aqui está uma atualização para minha primeira resposta:

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

Salva 11 bytes.


Primeiro post, perdoe-me por qualquer coisa que fiz errado. Além disso, sinta-se à vontade para me dar dicas de golfe, pois eu nunca experimentei isso antes!

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

Ungolfed:

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

Obrigado Jonathan Allan, ainda não pode adicionar comentários. E obrigado Kevin Cruijssen. Presumi que sempre deveria incluir o programa inteiro, a menos que a pergunta especificava que snippets eram permitidos. Eu também seria capaz de deixar de fora o sistema. ligue para imprimir para o console nesse caso, ou são necessárias / importações então?


1
Bem-vindo ao PPCG! Você pode remover a classe, apenas a função principal é exigido pelas regras de golfe :)
Jonathan Allan

1
@ JonathanAllan Não apenas isso, mas pelas mesmas regras, você também pode criar um método separado sem o fazer Main. Ou seja void f(int n){for(int i=0;i++<10;){System.Console.Write(i*n+" ");}}, bem-vindo ao PPCG!
Kevin Cruijssen


9

Geléia , 3 bytes

⁵R×

Teste no TryItOnline
Ou nos primeiros 256 casos, bem alinhados, também no TryItOnline

Quão?

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

Eu adoraria aprender Jelly mas metade dos comandos não tornam para mim, então seria inútil: D
Beta Decay

@BetaDecay Não consigo digitar a maioria deles e não tornem para mim em qualquer editor de texto ou na minha linha cmd :( - eles prestam bem no Firefox na minha máquina Windows 7 embora.
Jonathan Allan

Você e Emigma estão vencendo.
Rizze 8/16

@BetaDecay - Poderia ajudá-lo a baixar e (re) instalar a fonte DejaVu Sans Mono (agora posso ver quase todos os caracteres no bloco de notas ++ e o TIO através do Firefox agora também o está usando e exibindo todos os caracteres ainda)
Jonathan Allan

Exatamente o que eu pensei, +1.
Erik the Outgolfer

8

Clojure, 70 80 bytes

Este é o meu primeiro post no CG, espero que a entrada esteja OK:

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)))))

O programa lerá um número como argumento stdin e exibirá o resultado:

Resultado

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

5
Bem-vinda! Essa é uma ótima primeira resposta!
mbomb007


6

Perl, 19 bytes

Inclui +1 para -n

Execute com a entrada em STDIN:

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

table.pl:

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

Você provavelmente quis dizer -n? ou eu perdi alguma coisa?
Dada

@ Dadá: certo, confundiu com outra versão. Corrigido
Ton Hospel

5

Haskell, 16 bytes

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

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

Versão pointfree de: f n = map (n*) [1..10].


O que <$>faz?
Cyoce 9/09/16

@ Cyoce: <$>é uma versão infix de fmap(ou mapquando usada com uma lista), ou seja, aplica a função dada como seu primeiro argumento a todos os elementos da lista. func <$> list= fmap func list= map func list.
nimi


4

R, 11 bytes

scan()*0:10

30 caracteres.


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].' ';

A única usando range()com $steppode ser mais curto se você iniciá-lo de 0: <?=join(' ',range(0,10*$a=$argv[1],$a));.
Manatwork 07/09/16

A regra que permite iniciar a partir de 0 não foi definida quando eu fiz isso, mas você está certo; Eu atualizo este.
Crypto

4

J, 8 bytes

(i.10)&*

Esse é o intervalo de 0até 9inclusivo ( i.10) ligado ( &) com a função de multiplicação ( *). Isso começa em zero.

Casos de teste

   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}

Exemplo de execução:
(Esta é a maneira interativa de executá-lo, 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 salvos graças a @manatwork

Formatar a saída visivelmente não é necessário


1
Emprestado de minha resposta shell:lambda n:" ".join(map(str,range(0,n*11,n)))
manatwork

@manatwork Eu uso Python 3
TuxCrafting 7/16

1
Você usa o Python 3, mas pode salvar 6 bytes usando o 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 é a linguagem de programação matricial no pacote de estatísticas comerciais Stata. O código cria uma matriz, multiplica pela entrada (2 neste caso) e gera a nova matriz

Resultado

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

1
Como está recebendo informações? Também precisa ser reutilizável.
Jonathan Allan

1
OK, ter editado para esclarecer a recepção de entrada
f1rstguess


3

Estado, 46 ​​bytes

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

Resultado

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 |

Existem algumas atalhos extras que você pode usar aqui: ob para obs, g para gen e l para lista. Além disso, é possível ter x ser _n * `i 'em vez de usar duas variáveis? Eu nunca tinha visto argumentos antes no STATA. Obrigado por me mostrar algo novo!
bmarks

3

Queijo Cheddar , 20 bytes

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

Yay para \ o / funcional

Eu não acho que isso precise de explicação, mas se você quiser adicionar uma, basta perguntar :)


Eu deveria aprender Cheddar. E o que n&(*)faz? Estou assumindo que (*)significa a mesma coisa que significa que sou haskell, mas o que &faz nesse contexto?
Cyoce 9/09/16

@Cyoce está ligando
Downgoat

3

Java 7, 61 57 bytes

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

Casos não testados e de teste:

Experimente aqui.

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);
  }
}

Resultado:

2468101214161820
20406080100120140160180200

Os espaços são opcionais, System.out.print (i * n); salvaria 4 bytes
CameronD17 8/16

@ CameronD17 Ah, essa regra foi adicionada depois que eu fiz essa resposta, mas obrigado por mencionar. Eu o removi.
Kevin Cruijssen 8/09/16

3

JavaScript (ES6), 33 31 bytes

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

É uma solução recursiva.



3

Scala, 24 bytes

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

Explicação:

(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

Braquilog , 12 bytes

,10y:[?]z:*a

Experimente online!

Eu preciso implementar isso I * [A, B, C] = [I*A, I*B, I*C]...

Explicação

,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 a entrada como um byte único (como o BF pode operar apenas em números de até 255) e retorna os resultados como bytes únicos. Alguns valores podem parecer ASCII, mas não devem ser tratados como tal; observe a representação decimal dos bytes retornados.

Experimente online!


Você pode salvar 5 bytes executando>, [> +> ++> +++> ++++> +++++> ++++++> +++++++> ++++ ++++> +++++++++> ++++++++++ [<]> -]> [>].
Jeff

@ Jeff Infelizmente, isso interrompe qualquer entrada superior a 25, porque o byte transborda, redefinindo para 0. Os transbordos 0são correspondidos [<], o que faz todo o processo circular infinitamente.
Steven H.

Certo, mas o excesso de bytes resulta em saídas incorretas com o seu código, não é?
Jeff

1
@ Jeff Eles são saídas correctas, eles estão apenas operando em mod 255.
Steven H.

2

JavaScript, 42 bytes

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

Eu não sei muito bem o JS, você pode mover o incremento para a parte de teste do para?
Jonathan Allan

Eu editei. Está tudo bem agora.
Rizze 7/09/16

Ele alerta agora com alert ().
Rizze 07/09

Foi alertando para mim sem alerta: aqui - Eu levo isso de volta, precisa clicar em "run" e não apenas "tentar" para recarregar
Jonathan Allan

1
@JonathanAllan What?
Rizze 7/09

2

MATLAB, 12 bytes

@(x)x*[1:10]

Não é muito para isso. Uma função anônima que recebe xcomo entrada e a multiplica pelo vetor [1:10]. Exibe como ans = 2 4 6 ... Também funciona em oitava.

Experimente online .


2

PowerShell v2 +, 23 bytes

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

Recebe a entrada por meio do argumento da linha de comando, passa pelo intervalo 1para 10, cada loop colocando esse número *$nno pipeline. A saída via implícita Write-Outputno final da execução do programa resulta em valores separados por nova linha.

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);}

Ungolfed:

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

Compilar e executar com (entrada 4)

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

Resultado

40 36 32 28 24 20 16 12 8 4 

Teste-o

Demo


2

Pyke, 5 bytes

TSQm*

Experimente aqui!

Ou, TQm*se for permitido fazer números em 0-9vez de1-10

Ou TL*se não formos 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)}

Economizou 3 bytes graças ao grizzly.


No mínimo, você não precisa dos parênteses em torno do a, mas acho que também é possível ser criativo quanto à posição do ++.
Neil

2

Cubix , 24 bytes

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

Cubix é um esolang bidimensional baseado em pilha. O Cubix é diferente de outros idiomas 2D, pois o código-fonte está envolvido na parte externa de um cubo.

Teste online! Nota: você precisará copiar e colar o código e haverá um atraso de 50 ms entre as iterações.

Explicação

A primeira coisa que o intérprete faz é descobrir o menor cubo no qual o código se ajustará. Nesse caso, o comprimento da borda é 1. Em seguida, o código é preenchido com no-ops .até que todos os seis lados sejam preenchidos. O espaço em branco é removido antes do processamento, portanto, esse código é idêntico ao acima:

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

Aqui está um pouco mais curto, usando as novas opções de pilhaI.0.WrN;-!@vrW>r)*O;o
MickyT 13/10
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.