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.

Rizze
fonte
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

MATL , 4 bytes

10:*

Demolir:

        % Implicit input
10:     % Create a list from 1 2 ... 10
   *    % Multiply list by input
        % Implicit output

Experimente online

Stewie Griffin
fonte
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?

Yodle
fonte
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)
Jonathan Allan
fonte
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)
grisalho
fonte
5
Bem-vinda! Essa é uma ótima primeira resposta!
mbomb007
7

05AB1E , 3 bytes

TL*

Explicação

T    # literal predefined  as 10
 L   # 1-based range: [1,2,3,4,5,6,7,8,9,10]
  *  # multiply with input

Experimente online!

Emigna
fonte
Você e Jonathan Allan estão vencendo
Rizze 8/16 '13
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
Ton Hospel
fonte
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].

nimi
fonte
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

Água-viva , 8 bytes

p*r11
 i

Experimente online!

Muito simples: r11fornece a lista [0, 1, ..., 9, 10], ilê a entrada, *multiplica-os e pimprime a lista resultante.

Martin Ender
fonte
4

R, 11 bytes

scan()*0:10

30 caracteres.

Vlo
fonte
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].' ';
Crypto
fonte
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
Conor O'Brien
fonte
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
homem a trabalhar
fonte
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

TuxCrafting
fonte
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  |
    +---------------------------------------------------+
f1rstguess
fonte
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

Pure Bash, 18

echo $[{0..10}*$1]

A entrada é tomada como um parâmetro da linha de comandos.

Trauma Digital
fonte
Bom e ótimo ^ _ ^
ABcDexter 17/10
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 |
f1rstguess
fonte
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 :)

Downgoat
fonte
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
Kevin Cruijssen
fonte
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.

Huntro
fonte
3

T-SQL 61 bytes

Substitua n pelo número para o qual a tabela precisa ser preenchida. Demo

SELECT TOP 11 number*n FROM master..spt_values WHERE type='P'

spt_value é uma tabela não documentada no SQL Server, você pode ler mais sobre esta tabela em

Espero que alguém venha com a melhor solução TSQL.

Anuj Tripathi
fonte
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
corvus_192
fonte
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]
Fatalizar
fonte
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!

Steven H.
fonte
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)}
Rizze
fonte
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 .

Stewie Griffin
fonte
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
AdmBorkBork
fonte
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

YSC
fonte
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.

Azul
fonte
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.

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