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.


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

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?


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)

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)

5
Herzlich willkommen! Das ist eine großartige erste Antwort!
mbomb007


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

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


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

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

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

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

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


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

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

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 |

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


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

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.



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

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]

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!


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

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 .


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

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



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.


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

Hier ist eine etwas kürzere mit den neuen I.0.WrN;-!@vrW>r)*O;o
Stapeloptionen
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.