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.


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

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?


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)

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)

5
Bienvenue! Voilà une excellente première réponse!
mbomb007


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

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


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

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

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

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

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


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

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

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 |

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


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

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.



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

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]

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!


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

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 .


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

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


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.


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.


À 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

Voici un peu plus court en utilisant les nouvelles options de pileI.0.WrN;-!@vrW>r)*O;o
MickyT
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.