Cetak tabel perkalian dengan input

11

Dalam tantangan ini, Anda harus mencetak tabel perkalian dengan input, Berikut adalah beberapa contoh:

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

Aturan

  1. Kode terpendek dalam byte menang.

  2. Tantangan ini adalah kode-golf, mengikuti aturan umum ( )

  3. Jika, hanya jika, kode Anda tidak dapat mencetak nomor, Anda dapat menggunakan huruf, Ini adalah contohnya:

    Input: B

    Output: BDFHJLNPRT

  4. Anda dapat memilih mulai dari 0 atau nomor Anda (seperti 20). Anda dapat memilih apakah memberi spasi atau tidak. Tantangannya gratis, hanya mengambil input dan mencetak tabel perkalian.

  5. Keluaran Anda harus mencantumkan 10 anggota pertama dari tabel waktu untuk nomor yang diberikan. Anda dapat meninggalkan 0 * n.

Rizze
sumber
9
Contoh pertama Anda memiliki kelipatan dari 0 hingga 10, yang kedua dari 1 hingga 10. Bisakah kita memilih salah satunya atau salah satunya salah ketik? Juga, apakah output harus dipisahkan dengan ruang atau dapatkah kita menggunakan format daftar lain? (Jika hanya spasi, jumlah spasi agak acak dalam contoh Anda.)
Martin Ender
Anda dapat memilih mulai dari 0 atau nomor Anda (seperti 20). Anda dapat memilih apakah memberi spasi atau tidak. Tantangannya gratis, hanya mengambil input dan mencetak tabel perkalian.
Rizze
4
Selamat datang di PPCG! Senang melihat tantangan yang cukup sederhana, karena kami tidak memiliki cukup ini, meskipun di masa depan saya akan menambahkan beberapa informasi lagi. Seperti: Dari kasus uji sepertinya kita hanya perlu menampilkan 10 angka, tapi saya tidak melihat ini ditentukan. Apakah kita perlu mendukung input negatif? Mengapa ada dua ruang antara 2 dan 4? Mengapa test case pertama memiliki 0 dalam outputnya (menjadikannya 11 angka output, bukan 10). dll. Juga, Kotak Pasir untuk tantangan yang diusulkan adalah tempat yang baik untuk memposting terlebih dahulu untuk menyempurnakan tantangan
Kevin Cruijssen
Di bawah aturan 3, untuk apa hasilnya C? Bagaimana dengan Z?
Lynn
1
Apa sebenarnya outputnya, aturan normal cenderung memungkinkan fungsi mengembalikan outputnya sebagai daftar daripada mencetaknya ke STDOUT.
Brad Gilbert b2gills

Jawaban:

10

MATL , 4 byte

10:*

Kerusakan:

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

Cobalah online

Stewie Griffin
sumber
10

C #, 105 96 67 56 byte

Sekarang saya tahu cara lambda bekerja di C #, berikut ini adalah pembaruan untuk jawaban pertama saya:

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

Menghemat 11 byte.


Posting pertama, tolong maafkan saya atas kesalahan yang saya lakukan. Juga, jangan ragu untuk memberi saya tips bermain golf, karena saya belum pernah mencobanya sebelumnya!

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

Tidak Disatukan:

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

Terima kasih Jonathan Allan, belum dapat menambahkan komentar. Dan terima kasih, Kevin Cruijssen. Saya berasumsi bahwa saya harus selalu menyertakan seluruh program kecuali pertanyaan menentukan bahwa cuplikan diizinkan. Apakah saya juga dapat meninggalkan Sistem. panggilan untuk mencetak ke konsol dalam kasus ini, atau apakah menggunakan / impor diperlukan?

Yodle
sumber
1
Selamat datang di PPCG! Anda dapat menghapus kelas, hanya fungsi utama yang diperlukan oleh aturan golf :)
Jonathan Allan
1
@ JonathanAllan Tidak hanya itu, tetapi dengan aturan yang sama Anda juga bisa membuat metode terpisah tanpa Mainsemuanya. Yaitu void f(int n){for(int i=0;i++<10;){System.Console.Write(i*n+" ");}}Dan memang, selamat datang di PPCG!
Kevin Cruijssen
9

Jelly , 3 byte

⁵R×

Uji di TryItOnline
Atau 256 kasus pertama, disejajarkan dengan baik, juga di TryItOnline

Bagaimana?

⁵R× - main link takes one argument, n
⁵   - literal 10
 R  - range [1,2,...,10]
  × - multiply by input (implicit vectorization)
Jonathan Allan
sumber
Saya ingin belajar Jelly tetapi setengah dari perintah tidak memberikan bagi saya, jadi itu akan sia-sia: D
Beta Decay
@BetaDecay Saya tidak bisa mengetik sebagian besar dari mereka dan mereka tidak membuat saya dalam editor teks atau pada cmd line saya :( - mereka membuat baik-baik saja di Firefox pada mesin Windows 7 saya.
Jonathan Allan
Anda dan Emigma menang.
Rizze
@BetaDecay - Ini dapat membantu Anda mengunduh dan menginstal kembali font DejaVu Sans Mono (sekarang saya dapat melihat hampir setiap karakter di notepad ++ dan TIO melalui Firefox sekarang juga menggunakannya dan menampilkan setiap karakter tetap)
Jonathan Allan
Persis seperti yang saya pikirkan, +1.
Erik the Outgolfer
8

Clojure, 70 80 byte

Ini adalah posting pertama saya di CG, saya harap inputnya OK:

70 byte

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

80 byte

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

Program akan membaca angka sebagai argumen stdin dan menampilkan hasilnya:

Keluaran

lein run 10
(0 10 20 30 40 50 60 70 80 90)
grizzly
sumber
5
Selamat datang! Itu jawaban pertama yang bagus!
mbomb007
7

05AB1E , 3 byte

TL*

Penjelasan

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

Cobalah online!

Emigna
sumber
Anda dan Jonathan Allan menang
Rizze
6

Perl, 19 byte

Termasuk +1 untuk -n

Jalankan dengan input pada STDIN:

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

table.pl:

say$_*$`for/$/..10
Ton Hospel
sumber
Anda mungkin bermaksud -n? atau apakah saya melewatkan sesuatu?
Dada
@ Dada: benar, gabungkan dengan versi lain. Diperbaiki
Ton Hospel
5

Haskell, 16 byte

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

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

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

nimi
sumber
Apa yang <$>harus dilakukan
Cyoce
@Cyoce: <$>adalah versi infix dari fmap(atau mapketika digunakan dengan daftar), yaitu menerapkan fungsi yang diberikan sebagai argumen pertama ke setiap elemen daftar. func <$> list= fmap func list= map func list.
nimi
4

Ubur-ubur , 8 byte

p*r11
 i

Cobalah online!

Cukup sederhana: r11memberikan daftar [0, 1, ..., 9, 10], imembaca input, *mengalikannya dan pmencetak daftar yang dihasilkan.

Martin Ender
sumber
4

R, 11 byte

scan()*0:10

30 char.

Vlo
sumber
4

PHP, 34 byte

(34 byte)

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

(34 byte)

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

(34 byte)

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

(35 byte)

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

( 41 40 byte)

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

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

(44 byte)

foreach(range(1,10)as$i)echo$i*$argv[1].' ';
Crypto
sumber
Yang menggunakan range()dengan $stepbisa lebih pendek jika Anda memulainya dari 0: <?=join(' ',range(0,10*$a=$argv[1],$a));.
manatwork
Aturan yang memungkinkan untuk memulai dari 0 tidak ditetapkan ketika saya melakukannya, tetapi Anda benar; Saya memperbarui yang ini.
Crypto
4

J, 8 byte

(i.10)&*

Ini adalah rentang dari 0ke 9inklusif ( i.10) berikat ( &) wit fungsi perkalian ( *). Ini dimulai dari nol.

Uji kasus

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

Zsh, 19 karakter

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

Contoh dijalankan:
(Ini adalah cara interaktif untuk menjalankannya, setara dengan zsh scriptfile.sh 20.)

~ % set -- 20          

~ % echo {0..${1}0..$1}
0 20 40 60 80 100 120 140 160 180 200
manatwork
sumber
3

Python 3, 52 33 30 byte

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

3 byte disimpan berkat @manatwork

Memformat output tidak diperlukan

TuxCrafting
sumber
1
Pinjam dari jawaban shell saya:lambda n:" ".join(map(str,range(0,n*11,n)))
manatwork
@manatwork Saya menggunakan Python 3
TuxCrafting
1
Anda menggunakan Python 3 tetapi Anda dapat menyimpan 6 byte dengan menggunakan Python 2: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 adalah bahasa pemrograman matriks dalam paket statistik komersial Stata. Kode menciptakan matriks, dikalikan dengan input (2 dalam kasus ini) dan output matriks baru

Keluaran

        1    2    3    4    5    6    7    8    9   10
    +---------------------------------------------------+
  1 |   2    4    6    8   10   12   14   16   18   20  |
    +---------------------------------------------------+
f1rstguess
sumber
1
Bagaimana cara mengambil input? Itu perlu digunakan kembali juga.
Jonathan Allan
1
OK, sudah diedit untuk memperjelas penerimaan input
f1rstguess
3

Pure Bash, 18

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

Input diambil sebagai parameter baris perintah.

Trauma Digital
sumber
Bagus & bagus ^ _ ^
ABcDexter
3

Stata, 46 byte

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

Keluaran

Untuk 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
sumber
Ada beberapa singkatan tambahan yang dapat Anda gunakan di sini: ob for obs, g for gen, dan l untuk daftar. Juga, mungkinkah memiliki x menjadi _n * `i 'daripada menggunakan dua variabel? Saya belum pernah melihat args sebelumnya di STATA. Terima kasih telah menunjukkan kepada saya sesuatu yang baru!
tanda
3

Cheddar , 20 byte

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

Yay untuk fungsional \ o /

Saya tidak berpikir ini perlu penjelasan tetapi jika Anda ingin saya tambahkan satu saja tanyakan :)

Downgoat
sumber
Saya harus belajar Cheddar. Dan apa fungsinya n&(*)? Saya berasumsi (*)berarti hal yang sama artinya saya haskell, tetapi apa yang &dilakukan dalam konteks itu?
Cyoce
@Cyoce ikatannya
Downgoat
3

Java 7, 61 57 byte

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

Kasus yang tidak disatukan & uji:

Coba di sini.

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

Keluaran:

2468101214161820
20406080100120140160180200
Kevin Cruijssen
sumber
Spasi bersifat opsional, System.out.print (i * n); akan menghemat 4 byte
CameronD17
@ CameronD17 Ah, aturan itu telah ditambahkan setelah saya membuat jawaban ini, tetapi terima kasih telah menyebutkan. Saya sudah menghapusnya.
Kevin Cruijssen
3

JavaScript (ES6), 33 31 byte

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

Ini solusi rekursif.

Huntro
sumber
3

T-SQL 61 byte

Ganti n dengan nomor yang tabelnya perlu diisi. Demo

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

spt_value adalah tabel tidak berdokumen di SQL Server, Anda dapat membaca lebih lanjut tentang tabel ini di

Saya harap seseorang akan datang dengan solusi TSQL yang lebih baik.

Anuj Tripathi
sumber
3

Scala, 24 byte

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

Penjelasan:

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

Brachylog , 12 byte

,10y:[?]z:*a

Cobalah online!

Saya perlu mengimplementasikannya I * [A, B, C] = [I*A, I*B, I*C] ...

Penjelasan

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

brainf *** , 84 byte

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

Mengharapkan input sebagai byte tunggal (karena BF hanya dapat beroperasi pada angka hingga 255) dan mengembalikan hasil sebagai byte tunggal. Beberapa nilai mungkin terlihat seperti ASCII, tetapi tidak boleh diperlakukan seperti itu; lihat representasi desimal dari byte yang dikembalikan.

Cobalah online!

Steven H.
sumber
Anda dapat menyimpan 5 byte dengan melakukan>, [> +> ++> +++> ++++> +++++> ++++++> +++++++> ++++ ++++> +++++++++> +++++++++++ [<]> -]> [.>]
Jeff
@ Jeff JEff Sayangnya, itu memecah input apa pun yang lebih tinggi dari 25 karena byte akan melimpah, ulang ke 0. Overflow 0s dicocokkan dengan[<] , yang membuat seluruh proses loop tanpa batas.
Steven H.
Benar, tetapi byte yang berlebihan menghasilkan output yang salah dengan kode Anda, bukan?
Jeff
1
@ Jeff Jeff Mereka keluaran yang benar, mereka hanya beroperasi di mod 255.
Steven H.
2

JavaScript, 42 byte

function f(a){for(i=0;i<11;i++)alert(i*a)}
Rizze
sumber
Saya tidak begitu mengenal JS, dapatkah Anda memindahkan kenaikan ke bagian uji untuk?
Jonathan Allan
Saya mengeditnya. Sudah baik sekarang.
Rizze
Sekarang lansiran dengan lansiran ().
Rizze
Itu mengingatkan saya tanpa peringatan: di sini - saya mengambil kembali, perlu mengklik "jalankan" bukan hanya "mencoba" untuk memuat ulang
Jonathan Allan
1
@JonathanAllan Apa?
Rizze
2

MATLAB, 12 byte

@(x)x*[1:10]

Tidak terlalu banyak. Fungsi anonim yang mengambil xinput dan mengalikannya dengan vektor[1:10] . Menampilkan sebagai ans = 2 4 6 ... Juga berfungsi di Oktaf.

Cobalah online .

Stewie Griffin
sumber
2

PowerShell v2 +, 23 byte

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

Mengambil input melalui argumen baris perintah, loop selama rentang 1untuk 10, setiap loop menempatkan nomor yang *$npada pipa. Output melalui implisit Write-Outputpada akhir pelaksanaan program menghasilkan nilai-nilai yang dipisahkan oleh baris baru.

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
sumber
2

C89, 44 byte

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

Tidak Disatukan:

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

Kompilasi dan jalankan dengan (input 4)

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

Keluaran

40 36 32 28 24 20 16 12 8 4 

Menguji

Demo

YSC
sumber
2

Pyke, 5 byte

TSQm*

Coba di sini!

Atau TQm*jika diizinkan untuk melakukan angka 0-9daripada1-10

Atau TL*jika kita tidak kompetitif.

Biru
sumber
2

Javascript (ES6), 34 31 byte

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

Disimpan 3 byte berkat grizzly.

Paul Schmitz
sumber
Paling tidak Anda tidak perlu tanda kurung di sekitar a, tetapi saya pikir itu juga mungkin untuk menjadi kreatif untuk posisi ++.
Neil
2

Cubix , 24 byte

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

Cubix adalah esolang 2 dimensi, berbasis tumpukan. Cubix berbeda dari langs 2D lain dalam hal kode sumber dililitkan di luar kubus.

Uji secara online!Catatan: Anda harus menyalin-menempelkan kode, dan ada penundaan 50 ms di antara iterasi.

Penjelasan

Hal pertama yang dilakukan penerjemah adalah menemukan kubus terkecil yang sesuai dengan kode tersebut. Dalam hal ini, panjang tepi adalah 1. Kemudian kode diisi dengan no-ops .hingga keenam sisi terisi. Spasi dihapus sebelum diproses, jadi kode ini identik dengan yang di atas:

    ; ;
    . .
I 1 . N - ? W .
; ; ) W @ / S o
    . .
    * O
Produksi ETH
sumber
Inilah yang sedikit lebih pendek menggunakan opsi tumpukan baruI.0.WrN;-!@vrW>r)*O;o
MickyT