Wydrukuj tabliczki mnożenia według danych wejściowych

11

W tym wyzwaniu musisz wydrukować tabliczki mnożenia według danych wejściowych. Oto kilka przykładów:

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

Zasady

  1. Najkrótszy kod w bajtach wygrywa.

  2. To wyzwanie jest golfem kodowym, podlega ogólnym zasadom ( )

  3. Jeśli tylko jeśli twój kod nie może wydrukować numeru, możesz użyć liter, oto przykład:

    Wejście: B

    Wyjście: BDFHJLNPRT

  4. Możesz zacząć od 0 lub swojego numeru (np. 20). Możesz wybrać, czy wstawić spacje, czy nie. Wyzwanie jest bezpłatne, wystarczy wziąć dane wejściowe i wydrukować tabliczki mnożenia.

  5. Twój wynik musi zawierać listę pierwszych 10 elementów tabeli czasów dla podanej liczby. Możesz pominąć 0 * n.

Rizze
źródło
9
Twój pierwszy przykład ma wielokrotności od 0 do 10, drugi od 1 do 10. Czy możemy wybrać jeden z nich, czy też jeden z nich to literówka? Ponadto, czy dane wyjściowe muszą być oddzielone spacją, czy możemy używać innych formatów list? (Jeśli tylko spacje, w twoim przykładzie liczba spacji jest nieco losowa).
Martin Ender
Możesz zacząć od 0 lub swojego numeru (np. 20). Możesz wybrać, czy wstawić spacje, czy nie. Wyzwanie jest bezpłatne, wystarczy wziąć dane wejściowe i wydrukować tabliczki mnożenia.
Rizze
4
Witamy w PPCG! Miło widzieć dość proste wyzwanie, ponieważ nie mamy ich wystarczająco dużo, chociaż w przyszłości dodam więcej informacji. Na przykład: z przypadków testowych wydaje się, że musimy wypisać tylko 10 liczb, ale nie widzę tego określonego. Czy musimy wspierać negatywne dane wejściowe? Dlaczego są dwie spacje między 2 a 4? Dlaczego pierwszy przypadek testowy ma 0 na wyjściu (co daje 11 liczb wyjściowych zamiast 10). itd. itd. Również piaskownica dla proponowanych wyzwań jest dobrym miejscem do postawienia posta jako pierwszego w celu udoskonalenia wyzwania
Kevin Cruijssen,
Zgodnie z regułą 3, jaki powinien Cbyć wynik? Jak o Z?
Lynn,
1
Czym dokładnie jest wyjście, normalne reguły zwykle pozwalają funkcji zwracać dane wyjściowe jako listę, zamiast wypisywać je do STDOUT.
Brad Gilbert b2gills,

Odpowiedzi:

10

MATL , 4 bajty

10:*

Awaria:

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

Wypróbuj online

Stewie Griffin
źródło
10

C #, 105 96 67 56 bajtów

Teraz, gdy wiem, jak działa lambda w C #, oto aktualizacja mojej pierwszej odpowiedzi:

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

Oszczędza 11 bajtów.


Pierwszy post, proszę wybacz mi wszystko, co zrobiłem źle. Ponadto, nie krępuj się dać mi wskazówki dotyczące gry w golfa, ponieważ tak naprawdę wcześniej tego nie próbowałem!

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

Nie golfowany:

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

Dziękuję Jonathan Allan, nie mogę jeszcze dodawać komentarzy. I dziękuję Kevin Cruijssen. Zakładałem, że zawsze muszę dołączać cały program, chyba że pytanie określa, że ​​fragmenty są dozwolone. Czy mógłbym również pominąć System. w tym przypadku zadzwoń, aby wydrukować na konsolę, czy wtedy wymagane jest użycie / importowanie?

Jodła
źródło
1
Witamy w PPCG! Możesz usunąć klasę, tylko podstawowa funkcja jest wymagana przez zasady gry w golfa :)
Jonathan Allan
1
@JathanathanAllan Nie tylko to, ale według tych samych zasad możesz także stworzyć osobną metodę bez żadnych ograniczeń Main. Tj. void f(int n){for(int i=0;i++<10;){System.Console.Write(i*n+" ");}}I rzeczywiście, witamy w PPCG!
Kevin Cruijssen
9

Galaretka , 3 bajty

⁵R×

Przetestuj to w TryItOnline
Lub pierwszych 256 skrzynek, ładnie dopasowanych, również w TryItOnline

W jaki sposób?

⁵R× - main link takes one argument, n
⁵   - literal 10
 R  - range [1,2,...,10]
  × - multiply by input (implicit vectorization)
Jonathan Allan
źródło
Chciałbym nauczyć się galaretki, ale połowa poleceń nie jest dla mnie renderowana, więc byłoby to bezużyteczne: D
Rozpad
@BetaDecay Nie mogę wpisać większości z nich i nie wyświetlają się dla mnie w żadnym edytorze tekstu ani w wierszu cmd :( - renderują się dobrze w przeglądarce Firefox na moim komputerze z systemem Windows 7.
Jonathan Allan,
Ty i Emigma wygrywacie.
Rizze
@BetaDecay - Może pomóc Ci pobrać i (ponownie) zainstalować czcionkę DejaVu Sans Mono (widzę teraz prawie każdą postać w notatniku ++, a TIO przez Firefoksa również jej używa i wyświetla każdą postać nadal)
Jonathan Allan
Dokładnie to, o czym myślałem, +1.
Erik the Outgolfer,
8

Clojure, 70 80 bajtów

To jest mój pierwszy post na CG, mam nadzieję, że dane są prawidłowe:

70 bajtów

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

80 bajtów

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

Program odczyta liczbę jako argument stdin i wyświetli wynik:

Wynik

lein run 10
(0 10 20 30 40 50 60 70 80 90)
siwy
źródło
5
Witamy! To świetna pierwsza odpowiedź!
mbomb007,
7

05AB1E , 3 bajty

TL*

Wyjaśnienie

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

Wypróbuj online!

Emigna
źródło
Ty i Jonathan Allan
wygrywacie
6

Perl, 19 bajtów

Obejmuje +1 dla -n

Uruchom z wejściem na STDIN:

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

table.pl:

say$_*$`for/$/..10
Ton Hospel
źródło
Prawdopodobnie miałeś na myśli -n? czy coś mi umknęło?
Dada,
@Dada: racja, połączyła go z inną wersją. Naprawiono
Ton Hospel,
5

Haskell, 16 bajtów

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

Przykład użycia: (<$>[1..10]).(*) $ 4-> [4,8,12,16,20,24,28,32,36,40].

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

nimi
źródło
Co ma <$>zrobić?
Cyoce,
@Cyoce: <$>jest niepoprawną wersją fmap(lub mapgdy jest używana z listą), tzn. Zastosowała funkcję podaną jako pierwszy argument do każdego elementu listy. func <$> list= fmap func list= map func list.
nimi
4

Meduza , 8 bajtów

p*r11
 i

Wypróbuj online!

Całkiem proste: r11podaje listę [0, 1, ..., 9, 10], iodczytuje dane wejściowe, *mnoży je i pdrukuje wynikową listę.

Martin Ender
źródło
4

R 11 bajtów

scan()*0:10

30 znaków

Vlo
źródło
4

PHP, 34 bajty

(34 bajty)

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

(34 bajty)

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

(34 bajty)

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

(35 bajtów)

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

( 41 40 bajtów)

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

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

(44 bajty)

foreach(range(1,10)as$i)echo$i*$argv[1].' ';
Crypto
źródło
Jedna z użyciem range()z $stepmoże być krótszy, jeśli zaczniesz ją od 0: <?=join(' ',range(0,10*$a=$argv[1],$a));.
manatwork
Reguła zezwalająca na rozpoczęcie od 0 nie była ustawiona, kiedy to zrobiłem, ale masz rację; Aktualizuję ten.
Crypto
4

J, 8 bajtów

(i.10)&*

Jest to zakres od 0do 9włącznie ( i.10) bonded ( &) z funkcją mnożenia ( *). Zaczyna się od zera.

Przypadki testowe

   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
źródło
3

Zsh, 19 znaków

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

Przykładowy przebieg:
(Jest to interaktywny sposób uruchomienia, równoważny z zsh scriptfile.sh 20.)

~ % set -- 20          

~ % echo {0..${1}0..$1}
0 20 40 60 80 100 120 140 160 180 200
człowiek w pracy
źródło
3

Python 3, 52 33 30 bajtów

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

3 bajty zapisane dzięki @manatwork

Formatowanie danych wyjściowych nie jest widocznie konieczne

TuxCrafting
źródło
1
Pożycz z mojej odpowiedzi powłoki:lambda n:" ".join(map(str,range(0,n*11,n)))
manatwork
@manatwork Używam Python 3
TuxCrafting
1
Używasz Python 3, ale możesz zaoszczędzić 6 bajtów, używając Python 2:lambda n:range(0,11*n,n)
Jonathan Allan,
3

Mata, 15 29 bajtów

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

Mata jest językiem programowania matrycowego w pakiecie statystyk handlowych Stata. Kod tworzy macierz, mnoży przez dane wejściowe (w tym przypadku 2) i generuje nową macierz

Wynik

        1    2    3    4    5    6    7    8    9   10
    +---------------------------------------------------+
  1 |   2    4    6    8   10   12   14   16   18   20  |
    +---------------------------------------------------+
f1rstguess
źródło
1
Jak to bierze wkład? Musi też nadawać się do wielokrotnego użytku.
Jonathan Allan
1
OK, edytowałem, aby wyjaśnić otrzymanie danych wejściowych
f1rstguess
3

Pure Bash, 18 lat

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

Dane wejściowe są traktowane jako parametr wiersza polecenia.

Cyfrowa trauma
źródło
Good & great ^ _ ^
ABcDexter 17.10.16
3

Stata, 46 bajtów

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

Wynik

Dla 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
źródło
Istnieje kilka dodatkowych skrótów, których możesz użyć tutaj: ob dla obs, g dla gen i l dla listy. Czy jest również możliwe, aby x był _n * `i 'zamiast używać dwóch zmiennych? Nigdy wcześniej nie widziałem argumentów w STATA. Dzięki za pokazanie mi czegoś nowego!
zaznacza
3

Cheddar , 20 bajtów

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

Tak dla funkcjonalnego \ o /

Nie sądzę, że to wymaga wyjaśnienia, ale jeśli chcesz mnie dodać, po prostu zapytaj :)

Downgoat
źródło
Powinienem nauczyć się Cheddaru. I co n&(*)zrobić? Zakładam, że (*)oznacza to samo, co oznacza, że ​​mam haskell, ale co robi &w tym kontekście?
Cyoce,
@Cyoce jest wiązanie
Downgoat
3

Java 7, 61 57 bajtów

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

Przypadki bez golfa i testy:

Wypróbuj tutaj.

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

Wynik:

2468101214161820
20406080100120140160180200
Kevin Cruijssen
źródło
Spacje są opcjonalne, System.out.print (i * n); zaoszczędzi 4 bajty
CameronD17
@ CameronD17 Ach, ta zasada została dodana po udzieleniu tej odpowiedzi, ale dziękuję za wzmiankę. Usunąłem to.
Kevin Cruijssen
3

JavaScript (ES6), 33 31 bajtów

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

To rozwiązanie rekurencyjne.

Huntro
źródło
3

T-SQL 61 bajtów

Zamień n na liczbę, dla której należy wypełnić tabelę. Próbny

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

spt_value to nieudokumentowana tabela w SQL Server, możesz przeczytać więcej o tej tabeli w

Mam nadzieję, że ktoś wymyśli lepsze rozwiązanie TSQL.

Anuj Tripathi
źródło
3

Scala, 24 bajty

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

Wyjaśnienie:

(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
źródło
2

Brachylog , 12 bajtów

,10y:[?]z:*a

Wypróbuj online!

Muszę to wdrożyć I * [A, B, C] = [I*A, I*B, I*C]

Wyjaśnienie

,10y            The range [0, 1, …, 10]
    :[?]z       The list [[0, Input], [1, Input], …, [10, Input]]
         :*a    The list [0*Input, 1*Input, …, 10*Input]
Fatalizować
źródło
2

brainf *** , 84 bajtów

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

Oczekuje danych wejściowych jako jednego bajtu (ponieważ BF może działać tylko na liczbach do 255) i zwraca wyniki jako pojedyncze bajty. Niektóre wartości mogą wyglądać jak ASCII, ale nie powinny być traktowane jako takie; spójrz na dziesiętną reprezentację zwracanych bajtów.

Wypróbuj online!

Steven H.
źródło
Możesz zapisać 5 bajtów, wykonując>, [> +> ++> +++> ++++> +++++> ++++++> +++++++> ++++ ++++> +++++++++> ++++++++++ [<]> -]> [.>]
Jeff
@Jeff Niestety, to przerywa wszelkie dane wejściowe większe niż 25, ponieważ bajt się przepełni, resetując do 0. Przepełnienia 0są dopasowywane [<], co powoduje, że cała pętla procesu jest nieskończona.
Steven H.
Tak, ale przepełnione bajty i tak powodują niepoprawne dane wyjściowe kodu, prawda?
Jeff
1
@Jeff Są poprawnymi wyjściami, działają tylko w modie 255.
Steven H.
2

JavaScript, 42 bajty

function f(a){for(i=0;i<11;i++)alert(i*a)}
Rizze
źródło
Nie znam bardzo dobrze JS, czy możesz przenieść przyrost do części testowej for?
Jonathan Allan,
Zredagowałem to. Teraz jest ok.
Rizze
Ostrzega teraz za pomocą alert ().
Rizze
To ostrzegało mnie bez ostrzeżenia: tutaj - cofam to, muszę kliknąć „uruchom”, a nie tylko „spróbuj”, aby ponownie załadować
Jonathan Allan,
1
@JonathanAllan What?
Rizze
2

MATLAB, 12 bajtów

@(x)x*[1:10]

Nie bardzo. Anonimowa funkcja, która pobiera xdane wejściowe i mnoży je przez wektor[1:10] . Wyświetla się jako ans = 2 4 6 ... Działa również w Octave.

Wypróbuj online .

Stewie Griffin
źródło
2

PowerShell v2 +, 23 bajty

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

Staje się przez wprowadzanie poleceń argumencie linii pętle w całym zakresie 1do 10, każdej pętli składającej ten numer *$nw rurociągu. Dane wyjściowe poprzez niejawne Write-Outputna końcu wykonania programu skutkują wartościami oddzielonymi znakiem nowej linii.

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
źródło
2

C89, 44 bajty

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

Nie golfowany:

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

Kompiluj i uruchamiaj z (wejście 4)

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

Wynik

40 36 32 28 24 20 16 12 8 4 

Sprawdź to

Demo

YSC
źródło
2

Pyke, 5 bajtów

TSQm*

Wypróbuj tutaj!

Lub TQm*jeśli wolno robić numery 0-9zamiast1-10

Lub TL*jeśli będziemy niekonkurencyjni.

niebieski
źródło
2

JavaScript (ES6), 34 31 bajtów

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

Zaoszczędź 3 bajty dzięki grizzly.

Paul Schmitz
źródło
Przynajmniej nie potrzebujesz nawiasów wokół a, ale myślę, że można być kreatywnym co do pozycji ++.
Neil
2

Cubix , 24 bajty

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

Cubix to dwuwymiarowy esolang oparty na stosie. Cubix różni się od innych języków 2D tym, że kod źródłowy jest owinięty na zewnątrz sześcianu.

Przetestuj online!Uwaga: musisz skopiować i wkleić kod, a między iteracjami występuje opóźnienie 50 ms.

Wyjaśnienie

Pierwszą rzeczą, jaką robi interpreter, jest ustalenie najmniejszej kostki, na której będzie pasował kod. W tym przypadku długość krawędzi wynosi 1. Następnie kod jest .uzupełniany brakiem operacji, aż wszystkie sześć stron zostanie wypełnione. Białe znaki są usuwane przed przetwarzaniem, więc ten kod jest identyczny z powyższym:

    ; ;
    . .
I 1 . N - ? W .
; ; ) W @ / S o
    . .
    * O
ETHprodukcje
źródło
Oto nieco krótszy z nowymi opcjami stosuI.0.WrN;-!@vrW>r)*O;o
MickyT,