Imprimer les tables de multiplication par entrée

11

Dans ce défi, vous devez imprimer des tables de multiplication par entrée, voici quelques exemples:

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

Règles

  1. Le code le plus court en octets gagne.

  2. Ce défi est un code-golf, il suit les règles générales du ( )

  3. Si, juste si, votre code ne peut pas imprimer de nombre, vous pouvez utiliser des lettres, voici un exemple:

    Entrée: B

    Sortie: BDFHJLNPRT

  4. Vous pouvez choisir de partir de 0 ou de votre numéro (comme 20). Vous pouvez choisir de mettre des espaces ou non. Le défi est gratuit, il suffit de prendre une entrée et d'imprimer des tables de multiplication.

  5. Votre sortie doit répertorier les 10 premiers membres de la table des temps pour le nombre donné. Vous pouvez laisser de côté 0 * n.

Rizze
la source
9
Votre premier exemple a des multiples de 0 à 10, le second de 1 à 10. Pouvons-nous choisir l'un ou l'autre ou s'agit-il d'une faute de frappe? De plus, la sortie doit-elle être séparée par des espaces ou pouvons-nous utiliser d'autres formats de liste? (Si seulement des espaces, le nombre d'espaces est un peu aléatoire dans votre exemple.)
Martin Ender
Vous pouvez choisir de partir de 0 ou de votre numéro (comme 20). Vous pouvez choisir de mettre des espaces ou non. Le défi est gratuit, il suffit de prendre une entrée et d'imprimer des tables de multiplication.
Rizze
4
Bienvenue chez PPCG! C'est agréable de voir un défi assez simple, car nous n'en avons pas assez, bien qu'à l'avenir j'ajouterais plus d'informations. Comme: D'après les cas de test, il semble que nous ayons seulement besoin de sortir 10 numéros, mais je ne vois pas cela spécifié. Avons-nous besoin de soutenir une entrée négative? Pourquoi y a-t-il deux espaces entre 2 et 4? Pourquoi le premier cas de test a-t-il le 0 dans sa sortie (ce qui en fait 11 numéros de sortie au lieu de 10). etc. etc. En outre, le bac à sable pour les défis proposés est un bon endroit pour publier d'abord pour perfectionner le défi
Kevin Cruijssen
Selon la règle 3, quelle devrait être la sortie C? Et alors Z?
Lynn
1
Quelle est exactement la sortie, les règles normales ont tendance à permettre à une fonction de renvoyer sa sortie sous forme de liste plutôt que de les imprimer dans STDOUT.
Brad Gilbert b2gills

Réponses:

10

MATL , 4 octets

10:*

Panne:

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

Essayez-le en ligne

Stewie Griffin
la source
10

C #, 105 96 67 56 octets

Maintenant que je sais comment fonctionne lambda en C #, voici une mise à jour de ma première réponse:

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

Enregistre 11 octets.


Premier message, veuillez me pardonner pour tout ce que j'ai fait de mal. N'hésitez pas non plus à me donner des conseils de golf, car je ne l'ai pas encore essayé!

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

Non golfé:

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

Merci Jonathan Allan, je ne peux pas encore ajouter de commentaires. Et merci Kevin Cruijssen. J'ai supposé que je devais toujours inclure l'intégralité du programme, sauf si la question spécifiait que les extraits étaient autorisés. Serais-je également en mesure de laisser de côté le système. appelez pour imprimer sur la console dans ce cas, ou utilisez-vous / imports alors?

Yodle
la source
1
Bienvenue chez PPCG! Vous pouvez supprimer la classe, seule la fonction principale est requise par les règles du golf :)
Jonathan Allan
1
@JonathanAllan Non seulement cela, mais selon ces mêmes règles, vous pouvez également créer une méthode distincte sans Maintout à fait. Ie void f(int n){for(int i=0;i++<10;){System.Console.Write(i*n+" ");}}Et en effet, bienvenue à PPCG!
Kevin Cruijssen
9

Gelée , 3 octets

⁵R×

Testez-le sur TryItOnline
Ou 256 premiers cas, bien alignés, également sur TryItOnline

Comment?

⁵R× - main link takes one argument, n
⁵   - literal 10
 R  - range [1,2,...,10]
  × - multiply by input (implicit vectorization)
Jonathan Allan
la source
J'adorerais apprendre Jelly mais la moitié des commandes ne sont pas rendues pour moi, donc ce serait inutile: D
Beta Decay
@BetaDecay Je ne peux pas taper la plupart d'entre eux et ils ne s'affichent pas pour moi dans aucun éditeur de texte ou sur ma ligne cmd :( - cependant, ils s'affichent bien dans Firefox sur ma machine Windows 7.
Jonathan Allan
Vous et Emigma gagnez.
Rizze
@BetaDecay - Cela pourrait vous aider à télécharger et (ré) installer la police DejaVu Sans Mono (je peux maintenant voir presque tous les caractères dans le bloc-notes ++ et TIO via Firefox l'utilise aussi et affiche toujours tous les caractères)
Jonathan Allan
Exactement ce à quoi j'ai pensé, +1.
Erik the Outgolfer
8

Clojure, 70 80 octets

Ceci est mon premier post sur CG, j'espère que l'entrée est OK:

70 octets

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

80 octets

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

Le programme lira un nombre comme argument stdin et affichera le résultat:

Production

lein run 10
(0 10 20 30 40 50 60 70 80 90)
grisonnant
la source
5
Bienvenue! Voilà une excellente première réponse!
mbomb007
7

05AB1E , 3 octets

TL*

Explication

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

Essayez-le en ligne!

Emigna
la source
Vous et Jonathan Allan
gagnez
6

Perl, 19 octets

Comprend +1 pour -n

Exécutez avec l'entrée sur STDIN:

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

table.pl:

say$_*$`for/$/..10
Ton Hospel
la source
Vous vouliez probablement dire -n? ou ai-je raté quelque chose?
Dada
@Dada: à droite, confondu avec une autre version. Corrigé
Ton Hospel
5

Haskell, 16 octets

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

Exemple d'utilisation: (<$>[1..10]).(*) $ 4-> [4,8,12,16,20,24,28,32,36,40].

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

nimi
la source
Que fait <$>-il?
Cyoce
@Cyoce: <$>est une version infixée de fmap(ou maplorsqu'elle est utilisée avec une liste), c'est-à-dire qu'elle a appliqué la fonction donnée comme premier argument à chaque élément de la liste. func <$> list= fmap func list= map func list.
nimi
4

Méduse , 8 octets

p*r11
 i

Essayez-le en ligne!

Assez simple: r11donne la liste [0, 1, ..., 9, 10], ilit les entrées, les *multiplie et pimprime la liste résultante.

Martin Ender
la source
4

R, 11 octets

scan()*0:10

30 car.

Vlo
la source
4

PHP, 34 octets

(34 octets)

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

(34 octets)

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

(34 octets)

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

(35 octets)

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

( 41 40 octets)

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

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

(44 octets)

foreach(range(1,10)as$i)echo$i*$argv[1].' ';
Crypto
la source
L'un en utilisant range()avec $steppeut être plus courte si vous démarrez à partir de 0: <?=join(' ',range(0,10*$a=$argv[1],$a));.
manatwork
La règle permettant de partir de 0 n'a pas été fixée quand je l'ai fait, mais vous avez raison; Je mets à jour celui-ci.
Crypto
4

J, 8 octets

(i.10)&*

Il s'agit de la plage de 0à 9inclusive ( i.10) bonded ( &) avec la fonction de multiplication (* ). Cela commence à zéro.

Cas de test

   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
la source
3

Zsh, 19 caractères

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

Exemple d'exécution:
(C'est la façon interactive de l'exécuter, équivalente à zsh scriptfile.sh 20.)

~ % set -- 20          

~ % echo {0..${1}0..$1}
0 20 40 60 80 100 120 140 160 180 200
homme au travail
la source
3

Python 3, 52 33 30 octets

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

3 octets économisés grâce à @manatwork

Le formatage de la sortie n'est visiblement pas nécessaire

TuxCrafting
la source
1
Emprunter de ma réponse shell:lambda n:" ".join(map(str,range(0,n*11,n)))
manatwork
@manatwork J'utilise Python 3
TuxCrafting
1
Vous utilisez Python 3 mais vous pouvez économiser 6 octets en utilisant Python 2:lambda n:range(0,11*n,n)
Jonathan Allan
3

Mata, 15 29 octets

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

Mata est le langage de programmation matriciel du progiciel de statistiques commerciales Stata. Le code crée une matrice, multiplie par l'entrée (2 dans ce cas) et sort la nouvelle matrice

Production

        1    2    3    4    5    6    7    8    9   10
    +---------------------------------------------------+
  1 |   2    4    6    8   10   12   14   16   18   20  |
    +---------------------------------------------------+
f1rstguess
la source
1
Comment prend-il des informations? Il doit également être réutilisable.
Jonathan Allan
1
OK, ont modifié pour clarifier la réception de l'entrée
f1rstguess
3

Pure Bash, 18

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

L'entrée est considérée comme un paramètre de ligne de commande.

Traumatisme numérique
la source
Bon et super ^ _ ^
ABcDexter
3

Stata, 46 octets

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

Production

Pour 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
la source
Il y a quelques raccourcis supplémentaires que vous pouvez utiliser ici: ob pour obs, g pour gen et l pour list. Est-il également possible que x soit _n * `i 'au lieu d'utiliser deux variables? Je n'avais jamais vu d'arguments auparavant dans STATA. Merci de m'avoir montré quelque chose de nouveau!
bmarks
3

Cheddar , 20 octets

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

Ouais pour fonctionnel \ o /

Je ne pense pas que cela nécessite une explication, mais si vous souhaitez en ajouter un, demandez simplement :)

Downgoat
la source
Je devrais apprendre le cheddar. Et que fait n&(*)-il? Je suppose que cela (*)signifie la même chose que cela signifie que je suis haskell, mais que fait &-on dans ce contexte?
Cyoce
@Cyoce c'est du collage
Downgoat
3

Java 7, 61 57 octets

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

Cas non testés et testés:

Essayez-le ici.

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

Production:

2468101214161820
20406080100120140160180200
Kevin Cruijssen
la source
Les espaces sont facultatifs, System.out.print (i * n); économiserait 4 octets
CameronD17
@ CameronD17 Ah, cette règle a été ajoutée après avoir fait cette réponse, mais merci d'avoir mentionné. Je l'ai retiré.
Kevin Cruijssen
3

JavaScript (ES6), 33 31 octets

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

C'est une solution récursive.

Huntro
la source
3

T-SQL 61 octets

Remplacez n par le numéro pour lequel la table doit être remplie. Démo

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

spt_value est une table non documentée dans SQL Server, vous pouvez en savoir plus sur cette table dans

J'espère que quelqu'un trouvera une meilleure solution TSQL.

Anuj Tripathi
la source
3

Scala, 24 octets

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

Explication:

(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
la source
2

Brachylog , 12 octets

,10y:[?]z:*a

Essayez-le en ligne!

J'ai besoin de mettre cela en œuvre I * [A, B, C] = [I*A, I*B, I*C]

Explication

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

brainf *** , 84 octets

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

Attend l'entrée comme un seul octet (car BF ne peut fonctionner que sur des nombres jusqu'à 255) et renvoie les résultats sous forme d'un seul octet. Certaines valeurs peuvent ressembler à ASCII, mais elles ne doivent pas être traitées comme telles; regardez la représentation décimale des octets retournés.

Essayez-le en ligne!

Steven H.
la source
Vous pouvez enregistrer 5 octets en faisant>, [> +> ++> +++> ++++> +++++> ++++++> +++++++> ++++ ++++> +++++++++> ++++++++++ [<]> -]> [.>]
Jeff
@Jeff Malheureusement, cela interrompt toute entrée supérieure à 25 car l'octet débordera et se remettra à 0. Les débordements 0sont mis en correspondance [<], ce qui fait que la boucle de processus entière est infinie.
Steven H.
D'accord, mais les octets débordants entraînent de toute façon des sorties incorrectes avec votre code, n'est-ce pas?
Jeff
1
@Jeff Ce sont des sorties correctes, elles fonctionnent juste dans le mod 255.
Steven H.
2

JavaScript, 42 octets

function f(a){for(i=0;i<11;i++)alert(i*a)}
Rizze
la source
Je ne connais pas très bien JS, pouvez-vous déplacer l'incrément dans la partie test du for?
Jonathan Allan
Je l'ai édité. C'est bon maintenant.
Rizze
Il alerte maintenant avec alert ().
Rizze
Il me alertait sans alerte: ici - je reprends ça, il faut cliquer sur "exécuter" pas seulement "essayer" pour recharger
Jonathan Allan
1
@JonathanAllan Quoi?
Rizze
2

MATLAB, 12 octets

@(x)x*[1:10]

Pas vraiment grand-chose. Une fonction anonyme qui prend xen entrée et la multiplie par le vecteur [1:10]. S'affiche comme ans = 2 4 6 ... Fonctionne également dans Octave.

Essayez-le en ligne .

Stewie Griffin
la source
2

PowerShell v2 +, 23 octets

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

Prend l'entrée via l'argument de ligne de commande, boucle sur la plage 1jusqu'à 10, chaque boucle plaçant ce nombre *$nsur le pipeline. La sortie via implicite Write-Outputà la fin de l'exécution du programme entraîne des valeurs séparées par des sauts de ligne.

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
la source
2

C89, 44 octets

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

Non golfé:

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

Compiler et exécuter avec (entrée 4)

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

Production

40 36 32 28 24 20 16 12 8 4 

Essaye-le

Demo

YSC
la source
2

Pyke, 5 octets

TSQm*

Essayez-le ici!

Ou TQm*s'il est autorisé à faire des chiffres 0-9plutôt que1-10

Ou TL*si nous devenons non compétitifs.

Bleu
la source
2

Javascript (ES6), 34 31 octets

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

Enregistré 3 octets grâce à grizzly.

Paul Schmitz
la source
À tout le moins, vous n'avez pas besoin des parenthèses autour du a, mais je pense qu'il est également possible d'être créatif quant à la position du ++.
Neil
2

Cubix , 24 octets

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

Cubix est un esolang bidimensionnel basé sur la pile. Cubix est différent des autres langages 2D en ce que le code source est enroulé autour de l'extérieur d'un cube.

Testez-le en ligne!Remarque: vous devrez copier-coller le code et il y a un délai de 50 ms entre les itérations.

Explication

La première chose que fait l'interpréteur est de trouver le plus petit cube sur lequel le code s'adaptera. Dans ce cas, la longueur du bord est 1. Ensuite, le code est .rempli de non-opérations jusqu'à ce que les six côtés soient remplis. L'espace est supprimé avant le traitement, donc ce code est identique à celui ci-dessus:

    ; ;
    . .
I 1 . N - ? W .
; ; ) W @ / S o
    . .
    * O
ETHproductions
la source
Voici un peu plus court en utilisant les nouvelles options de pileI.0.WrN;-!@vrW>r)*O;o
MickyT