Drucken Sie Multiplikationstabellen nach Eingabe

11

Bei dieser Herausforderung müssen Sie Multiplikationstabellen nach Eingabe drucken. Hier einige Beispiele:

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

Regeln

  1. Der kürzeste Code in Bytes gewinnt.

  2. Diese Herausforderung ist ein Code-Golf. Sie folgt den allgemeinen Regeln des ( ).

  3. Wenn Ihr Code keine Zahlen drucken kann, können Sie Buchstaben verwenden. Hier ein Beispiel:

    Eingabe: B.

    Ausgabe: BDFHJLNPRT

  4. Sie können wählen, ob Sie bei 0 oder bei Ihrer Nummer (z. B. 20) beginnen möchten. Sie können wählen, ob Leerzeichen eingefügt werden sollen oder nicht. Die Herausforderung ist kostenlos, nehmen Sie einfach eine Eingabe und drucken Sie Multiplikationstabellen.

  5. Ihre Ausgabe muss die ersten 10 Mitglieder der Zeittabelle für die angegebene Nummer auflisten. Sie können 0 * n weglassen.

Rizze
quelle
9
Ihr erstes Beispiel hat Vielfache von 0 bis 10, das zweite von 1 bis 10. Können wir eines davon auswählen oder ist eines davon ein Tippfehler? Muss die Ausgabe auch durch Leerzeichen getrennt sein oder können wir andere Listenformate verwenden? (Wenn nur Leerzeichen, ist die Anzahl der Leerzeichen in Ihrem Beispiel etwas zufällig.)
Martin Ender
Sie können wählen, ob Sie bei 0 oder bei Ihrer Nummer (z. B. 20) beginnen möchten. Sie können wählen, ob Leerzeichen eingefügt werden sollen oder nicht. Die Herausforderung ist kostenlos, nehmen Sie einfach eine Eingabe und drucken Sie Multiplikationstabellen.
Rizze
4
Willkommen bei PPCG! Schön, eine ziemlich einfache Herausforderung zu sehen, da wir diese nicht genug haben, obwohl ich in Zukunft weitere Informationen hinzufügen würde. Wie: Aus den Testfällen geht hervor, dass wir nur 10 Zahlen ausgeben müssen, aber ich sehe dies nicht angegeben. Müssen wir negative Eingaben unterstützen? Warum gibt es zwei Leerzeichen zwischen 2 und 4? Warum hat der erste Testfall die 0 in seiner Ausgabe (11 Ausgabennummern statt 10)? usw. usw. Auch die Sandbox für vorgeschlagene Herausforderungen ist ein guter Ort, um zuerst zu posten, um die Herausforderung zu perfektionieren
Kevin Cruijssen
Wofür sollte die Ausgabe nach Regel 3 Csein? Wie wäre es Z?
Lynn
1
Was genau ist die Ausgabe? Die normalen Regeln ermöglichen es einer Funktion, ihre Ausgabe als Liste zurückzugeben, anstatt sie an STDOUT zu drucken.
Brad Gilbert b2gills

Antworten:

10

MATL , 4 Bytes

10:*

Nervenzusammenbruch:

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

Probieren Sie es online aus

Stewie Griffin
quelle
10

C #, 105 96 67 56 Bytes

Jetzt, da ich weiß, wie Lambda in C # funktioniert, ist hier ein Update meiner ersten Antwort:

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

Spart 11 Bytes.


Erster Beitrag, bitte vergib mir alles, was ich falsch gemacht habe. Sie können mir auch gerne Golftipps geben, da ich es noch nicht wirklich ausprobiert habe!

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

Vielen Dank Jonathan Allan, kann noch keine Kommentare hinzufügen. Und danke Kevin Cruijssen. Ich nahm an, dass ich immer das gesamte Programm einschließen musste, es sei denn, die Frage spezifizierte, dass Snippets erlaubt waren. Würde ich auch das System weglassen können. Rufen Sie in diesem Fall an, um auf der Konsole zu drucken, oder sind dann / imports erforderlich?

Jodeln
quelle
1
Willkommen bei PPCG! Sie können die Klasse entfernen, nur die Hauptfunktion wird von den Golfregeln verlangt :)
Jonathan Allan
1
@JonathanAllan Nicht nur das, sondern nach den gleichen Regeln können Sie auch einfach eine separate Methode ohne Maininsgesamt erstellen . Dh void f(int n){for(int i=0;i++<10;){System.Console.Write(i*n+" ");}}Und in der Tat, begrüßen zu PPCG!
Kevin Cruijssen
9

Gelee , 3 Bytes

⁵R×

Testen Sie es bei TryItOnline
oder bei den ersten 256 Fällen, die gut aufeinander abgestimmt sind , auch bei TryItOnline

Wie?

⁵R× - main link takes one argument, n
⁵   - literal 10
 R  - range [1,2,...,10]
  × - multiply by input (implicit vectorization)
Jonathan Allan
quelle
Ich würde gerne Jelly lernen, aber die Hälfte der Befehle wird nicht für mich gerendert, daher wäre es nutzlos: D
Beta Decay
@BetaDecay Ich kann die meisten von ihnen nicht eingeben und sie rendern nicht für mich in einem Texteditor oder in meiner cmd-Zeile :( - sie rendern in Firefox auf meinem Windows 7-Computer gut.
Jonathan Allan
Sie und Emigma gewinnen.
Rizze
@BetaDecay - Es könnte Ihnen helfen, die Schriftart DejaVu Sans Mono herunterzuladen und (neu) zu installieren (ich kann jetzt fast jedes Zeichen in Notepad ++ sehen und TIO über Firefox verwendet es jetzt auch und zeigt immer noch jedes Zeichen an)
Jonathan Allan
Genau das, woran ich gedacht habe, +1.
Erik der Outgolfer
8

Clojure, 70 80 Bytes

Dies ist mein erster Beitrag zu CG. Ich hoffe, die Eingabe ist in Ordnung:

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

Das Programm liest eine Zahl als Standardargument und zeigt das Ergebnis an:

Ausgabe

lein run 10
(0 10 20 30 40 50 60 70 80 90)
Grizzly
quelle
5
Herzlich willkommen! Das ist eine großartige erste Antwort!
mbomb007
7

05AB1E , 3 Bytes

TL*

Erläuterung

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

Probieren Sie es online aus!

Emigna
quelle
Sie und Jonathan Allan gewinnen
Rizze
6

Perl, 19 Bytes

Beinhaltet +1 für -n

Mit der Eingabe auf STDIN ausführen:

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

table.pl::

say$_*$`for/$/..10
Ton Hospel
quelle
Du hast es wahrscheinlich gemeint -n? oder habe ich etwas verpasst
Dada
@ Dada: Richtig, hat es mit einer anderen Version zusammengeführt. Behoben
Ton Hospel
5

Haskell, 16 Bytes

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

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

Punktfreie Version von : f n = map (n*) [1..10].

Nimi
quelle
Was macht <$>das
Cyoce
@Cyoce: <$>ist eine Infix-Version von fmap(oder mapbei Verwendung mit einer Liste), dh sie hat die als erstes Argument angegebene Funktion auf jedes Element der Liste angewendet. func <$> list= fmap func list= map func list.
Nimi
4

Qualle , 8 Bytes

p*r11
 i

Probieren Sie es online aus!

Ganz einfach: r11Gibt die Liste an [0, 1, ..., 9, 10], iliest die Eingabe, *multipliziert sie und pdruckt die resultierende Liste.

Martin Ender
quelle
4

R, 11 Bytes

scan()*0:10

30 char.

Vlo
quelle
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].' ';
Krypto
quelle
Die Verwendung range()mit $stepkann kürzer sein, wenn Sie mit 0 beginnen : <?=join(' ',range(0,10*$a=$argv[1],$a));.
Manatwork
Die Regel, die es erlaubt, bei 0 zu beginnen, wurde nicht festgelegt, als ich es tat, aber Sie haben Recht; Ich aktualisiere dieses.
Krypto
4

J, 8 Bytes

(i.10)&*

Dies ist der Bereich von 0bis 9einschließlich ( i.10) gebunden ( &) mit der Multiplikationsfunktion ( *). Dies beginnt bei Null.

Testfälle

   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
quelle
3

Zsh, 19 Zeichen

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

Probelauf:
(Dies ist die interaktive Methode zum Ausführen, entsprechend zsh scriptfile.sh 20.)

~ % set -- 20          

~ % echo {0..${1}0..$1}
0 20 40 60 80 100 120 140 160 180 200
Mann bei der Arbeit
quelle
3

Python 3, 52 33 30 Bytes

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

3 Bytes dank @manatwork gespeichert

Das Formatieren der Ausgabe ist sichtbar nicht erforderlich

TuxCrafting
quelle
1
Ausleihen von meiner Shell Antwort:lambda n:" ".join(map(str,range(0,n*11,n)))
Manatwork
@ Manatwork Ich benutze Python 3
TuxCrafting
1
Sie verwenden Python 3, aber Sie können 6 Bytes mit Python 2 sparen: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 ist die Matrix-Programmiersprache im kommerziellen Statistikpaket von Stata. Code erstellt eine Matrix, multipliziert mit der Eingabe (in diesem Fall 2) und gibt die neue Matrix aus

Ausgabe

        1    2    3    4    5    6    7    8    9   10
    +---------------------------------------------------+
  1 |   2    4    6    8   10   12   14   16   18   20  |
    +---------------------------------------------------+
Erste Vermutung
quelle
1
Wie nimmt es Input auf? Es muss auch wiederverwendbar sein.
Jonathan Allan
1
OK, habe bearbeitet, um den Eingang der Eingabe zu klären
f1rstguess
3

Pure Bash, 18

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

Die Eingabe wird als Befehlszeilenparameter verwendet.

Digitales Trauma
quelle
Gut & großartig ^ _ ^
ABcDexter
3

Stata, 46 Bytes

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

Ausgabe

Für 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 |
Erste Vermutung
quelle
Es gibt einige zusätzliche Abkürzungen, die Sie hier verwenden können: ob für obs, g für gen und l für list. Ist es auch möglich, dass x _n * `i 'ist, anstatt zwei Variablen zu verwenden? Ich hatte noch nie zuvor in STATA Argumente gesehen. Danke, dass du mir etwas Neues gezeigt hast!
Bmarks
3

Cheddar , 20 Bytes

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

Yay für funktionale \ o /

Ich denke nicht, dass dies einer Erklärung bedarf, aber wenn Sie mir eine hinzufügen möchten, fragen Sie einfach :)

Downgoat
quelle
Ich sollte Cheddar lernen. Und was macht n&(*)das? Ich gehe davon aus, (*)dass es dasselbe bedeutet, was bedeutet &, dass ich haskell bin, aber was macht das in diesem Zusammenhang?
Cyoce
@Cyoce es ist Bindung
Downgoat
3

Java 7, 61 57 Bytes

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

Ungolfed & Testfälle:

Probieren Sie es hier aus.

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

Ausgabe:

2468101214161820
20406080100120140160180200
Kevin Cruijssen
quelle
Leerzeichen sind optional, System.out.print (i * n); würde 4 Bytes sparen
CameronD17
@ CameronD17 Ah, diese Regel wurde hinzugefügt, nachdem ich diese Antwort gegeben habe, aber danke für die Erwähnung. Ich habe es entfernt.
Kevin Cruijssen
3

JavaScript (ES6), 33 31 Byte

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

Es ist eine rekursive Lösung.

Huntro
quelle
3

T-SQL 61 Bytes

Ersetzen Sie n durch die Nummer, für die die Tabelle ausgefüllt werden muss. Demo

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

spt_value ist eine undokumentierte Tabelle in SQL Server. Weitere Informationen zu dieser Tabelle finden Sie in

Ich hoffe, jemand wird eine bessere TSQL-Lösung finden.

Anuj Tripathi
quelle
3

Scala, 24 Bytes

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

Erläuterung:

(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
quelle
2

Brachylog , 12 Bytes

,10y:[?]z:*a

Probieren Sie es online aus!

Ich muss das umsetzen I * [A, B, C] = [I*A, I*B, I*C]...

Erläuterung

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

brainf *** , 84 Bytes

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

Erwartet die Eingabe als einzelnes Byte (da BF nur mit Zahlen bis zu 255 arbeiten kann) und gibt die Ergebnisse als einzelne Bytes zurück. Einige Werte sehen möglicherweise wie ASCII aus, sollten jedoch nicht als solche behandelt werden. Schauen Sie sich die Dezimaldarstellung der zurückgegebenen Bytes an.

Probieren Sie es online aus!

Steven H.
quelle
Sie können 5 Bytes speichern, indem Sie>, [> +> ++> +++> ++++> +++++> ++++++> +++++++> ++++ ausführen ++++> +++++++++> ++++++++++ [<]> -]> [.>]
Jeff
@Jeff Leider bricht dies jede Eingabe, die höher als 25 ist, weil das Byte überläuft und auf 0 zurückgesetzt wird. Die Überläufe 0werden abgeglichen [<], wodurch die gesamte Prozessschleife unendlich wird.
Steven H.
Richtig, aber überlaufende Bytes führen trotzdem zu falschen Ausgaben mit Ihrem Code, nicht wahr?
Jeff
1
@ Jeff Sie sind korrekte Ausgaben, sie arbeiten nur in Mod 255.
Steven H.
2

JavaScript, 42 Bytes

function f(a){for(i=0;i<11;i++)alert(i*a)}
Rizze
quelle
Ich kenne JS nicht sehr gut. Können Sie das Inkrement in den Testabschnitt des for verschieben?
Jonathan Allan
Ich habe es bearbeitet. Jetzt ist es ok.
Rizze
Es warnt jetzt mit alert ().
Rizze
Es war eine Warnung für mich ohne Warnung: hier - ich nehme das zurück, muss auf "Ausführen" klicken, nicht nur auf "Versuchen", um neu zu laden
Jonathan Allan
1
@ JonathanAllan Was?
Rizze
2

MATLAB, 12 Bytes

@(x)x*[1:10]

Nicht wirklich viel dazu. Eine anonyme Funktion, die xals Eingabe verwendet und mit dem Vektor multipliziert wird [1:10]. Zeigt an als ans = 2 4 6 ... Funktioniert auch in Octave.

Probieren Sie es online aus .

Stewie Griffin
quelle
2

PowerShell v2 +, 23 Byte

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

Nimmt Eingaben über ein Befehlszeilenargument vor und durchläuft den Bereich 1bis 10, wobei jede Schleife diese Nummer *$nin die Pipeline einfügt. Die implizite Ausgabe Write-Outputam Ende der Programmausführung führt zu durch Zeilenumbrüche getrennten Werten.

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

Kompilieren und ausführen mit (Eingabe 4)

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

Ausgabe

40 36 32 28 24 20 16 12 8 4 

Probier es aus

Demo

YSC
quelle
2

Pyke, 5 Bytes

TSQm*

Probieren Sie es hier aus!

Oder TQm*wenn es erlaubt ist, Zahlen zu machen 0-9anstatt1-10

Oder TL*wenn wir nicht wettbewerbsfähig sind.

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

3 Bytes dank Grizzly gespart.

Paul Schmitz
quelle
Zumindest brauchen Sie die Klammern um das nicht a, aber ich denke, es ist auch möglich, kreativ in Bezug auf die Position des zu sein ++.
Neil
2

Cubix , 24 Bytes

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

Cubix ist ein zweidimensionaler, stapelbasierter Esolang. Cubix unterscheidet sich von anderen 2D-langs darin, dass der Quellcode um die Außenseite eines Cubes gewickelt ist.

Testen Sie es online! Hinweis: Sie müssen den Code kopieren und einfügen, und zwischen den Iterationen liegt eine Verzögerung von 50 ms.

Erläuterung

Der Interpreter ermittelt zunächst den kleinsten Cube, auf den der Code passt. In diesem Fall beträgt die Kantenlänge 1. Dann wird der Code mit No-Ops .aufgefüllt, bis alle sechs Seiten gefüllt sind. Leerzeichen werden vor der Verarbeitung entfernt, daher ist dieser Code mit dem oben genannten identisch:

    ; ;
    . .
I 1 . N - ? W .
; ; ) W @ / S o
    . .
    * O
ETH-Produktionen
quelle
Hier ist eine etwas kürzere mit den neuen I.0.WrN;-!@vrW>r)*O;o
Stapeloptionen