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.


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

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?


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)

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)

5
Selamat datang! Itu jawaban pertama yang bagus!
mbomb007


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

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


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

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

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

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

3

Python 3, 52 33 30 byte

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

3 byte disimpan berkat @manatwork

Memformat output tidak diperlukan


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

1
Bagaimana cara mengambil input? Itu perlu digunakan kembali juga.
Jonathan Allan

1
OK, sudah diedit untuk memperjelas penerimaan input
f1rstguess


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 |

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


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


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

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.



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

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]

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!


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

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 .


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

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


2

Pyke, 5 byte

TSQm*

Coba di sini!

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

Atau TL*jika kita tidak kompetitif.


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.


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

Inilah yang sedikit lebih pendek menggunakan opsi tumpukan baruI.0.WrN;-!@vrW>r)*O;o
MickyT
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.