In bảng nhân với đầu vào


11

Trong thử thách này, bạn đã in các bảng nhân theo đầu vào, Dưới đây là một số ví dụ:

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

Quy tắc

  1. Mã ngắn nhất tính bằng byte thắng.

  2. Thách thức này là một môn đánh gôn, Nó tuân theo các quy tắc chung về môn đánh gôn ( )

  3. Nếu, chỉ khi, mã của bạn không thể in số, bạn có thể sử dụng các chữ cái, Dưới đây là một ví dụ:

    Đầu vào: B

    Đầu ra: BDFHJLNPRT

  4. Bạn có thể chọn bắt đầu từ 0 hoặc số của bạn (như 20). Bạn có thể chọn nếu đặt dấu cách hoặc không. Thử thách là miễn phí, chỉ cần lấy một đầu vào và in các bảng nhân.

  5. Đầu ra của bạn phải liệt kê 10 thành viên đầu tiên của bảng lần cho số đã cho. Bạn có thể bỏ qua 0 * n.


9
Ví dụ đầu tiên của bạn có bội số từ 0 đến 10, lần thứ hai từ 1 đến 10. Chúng ta có thể chọn một trong số chúng hay là một trong số chúng là một lỗi đánh máy? Ngoài ra, đầu ra có phải được phân tách bằng dấu cách hay chúng ta có thể sử dụng các định dạng danh sách khác không? (Nếu chỉ có khoảng trắng, số lượng khoảng trắng là một chút ngẫu nhiên trong ví dụ của bạn.)
Martin Ender

Bạn có thể chọn bắt đầu từ 0 hoặc số của bạn (như 20). Bạn có thể chọn nếu đặt dấu cách hoặc không. Thử thách là miễn phí, chỉ cần lấy một đầu vào và in các bảng nhân.
Rizze

4
Chào mừng đến với PPCG! Rất vui khi thấy một thử thách khá đơn giản, vì chúng ta không có đủ những điều này, mặc dù trong tương lai tôi sẽ thêm một số thông tin. Giống như: Từ các trường hợp thử nghiệm, có vẻ như chúng ta chỉ cần xuất 10 số, nhưng tôi không thấy điều này được chỉ định. Chúng ta có cần hỗ trợ đầu vào tiêu cực không? Tại sao có hai khoảng cách giữa 2 và 4? Tại sao trường hợp thử nghiệm đầu tiên có 0 trong đầu ra của nó (biến nó thành 11 số đầu ra thay vì 10). v.v ... Ngoài ra, Sandbox cho các thử thách được đề xuất là một nơi tốt để đăng đầu tiên để hoàn thiện thử thách
Kevin Cruijssen

Theo quy tắc 3, đầu ra Cphải là gì? Thế còn Z?
Lynn

1
Chính xác thì đầu ra là gì, các quy tắc thông thường có xu hướng cho phép một hàm trả về đầu ra của nó dưới dạng một danh sách thay vì in chúng thành STDOUT.
Brad Gilbert b2gills

Câu trả lời:



10

C #, 105 96 67 56 byte

Bây giờ tôi đã biết cách lambda hoạt động trong C #, đây là bản cập nhật cho câu trả lời đầu tiên của tôi:

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

Lưu 11 byte.


Bài đăng đầu tiên, xin vui lòng tha thứ cho tôi vì bất cứ điều gì tôi đã làm sai. Ngoài ra, vui lòng cho tôi lời khuyên chơi golf, vì tôi chưa thực sự thử nó trước đây!

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

Ung dung:

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

Cảm ơn Jonathan Allan, chưa thể thêm ý kiến. Và cảm ơn Kevin Cruijssen. Tôi giả sử tôi phải luôn bao gồm toàn bộ chương trình trừ khi câu hỏi được chỉ định rằng đoạn trích được cho phép. Tôi cũng có thể rời khỏi Hệ thống. gọi để in ra bàn điều khiển trong trường hợp này, hoặc đang sử dụng / nhập khẩu sau đó?


1
Chào mừng đến với PPCG! Bạn có thể xóa lớp, chỉ có chức năng chính được yêu cầu theo quy tắc chơi gôn :)
Jonathan Allan

1
@Jonathan ALLan Không chỉ vậy, nhưng theo những quy tắc tương tự, bạn cũng có thể tạo một phương thức riêng biệt mà không cần Mainhoàn toàn. Tức là void f(int n){for(int i=0;i++<10;){System.Console.Write(i*n+" ");}}và thực sự, chào mừng bạn đến với PPCG!
Kevin Cruijssen


9

Thạch , 3 byte

⁵R×

Kiểm tra nó tại TryItOnline
Hoặc 256 trường hợp đầu tiên, được căn chỉnh độc đáo, cũng tại TryItOnline

Làm sao?

⁵R× - main link takes one argument, n
⁵   - literal 10
 R  - range [1,2,...,10]
  × - multiply by input (implicit vectorization)

Tôi rất thích học Jelly nhưng một nửa số lệnh không hiển thị cho tôi, vì vậy nó sẽ vô dụng: D
Beta Decay

@BetaDecay Tôi không thể nhập hầu hết trong số họ và họ không kết xuất cho tôi trong bất kỳ trình soạn thảo văn bản nào hoặc trên dòng cmd của tôi :( - mặc dù chúng vẫn hoạt động tốt trên Firefox trên máy Windows 7 của tôi.
Jonathan Allan

Bạn và Emigma đang chiến thắng.
Rizze

@BetaDecay - Nó có thể giúp bạn tải xuống và (cài đặt lại) phông chữ DejaVu Sans Mono (Bây giờ tôi có thể thấy hầu hết mọi ký tự trong notepad ++ và TIO thông qua Firefox hiện cũng đang sử dụng nó và hiển thị mọi ký tự vẫn còn)
Jonathan Allan

Chính xác những gì tôi nghĩ, +1.
Erik the Outgolfer

8

Clojure, 70 80 byte

Đây là bài viết đầu tiên của tôi trên CG, tôi hy vọng đầu vào là 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)))))

Chương trình sẽ đọc một số dưới dạng đối số stdin và hiển thị kết quả:

Đầu ra

lein run 10
(0 10 20 30 40 50 60 70 80 90)

5
Chào mừng bạn Đó là một câu trả lời đầu tiên tuyệt vời!
mbomb007


6

Perl, 19 byte

Bao gồm +1 cho -n

Chạy với đầu vào trên STDIN:

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

table.pl:

say$_*$`for/$/..10

Bạn có thể có nghĩa là -ngì? hoặc tôi đã bỏ lỡ một cái gì đó?
Dada

@Dada: đúng rồi, kết hợp nó với một phiên bản khác. Đã sửa lỗi
TonMedel

5

Haskell, 16 byte

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

Ví dụ sử dụng: (<$>[1..10]).(*) $ 4-> [4,8,12,16,20,24,28,32,36,40].

Phiên bản miễn phí của : f n = map (n*) [1..10].


Không gì <$>làm gì?
Cyoce

@Cyoce: <$>là phiên bản kết hợp của fmap(hoặc mapkhi được sử dụng với danh sách), tức là nó đã áp dụng hàm được đưa ra làm đối số thứ nhất cho mọi thành phần của danh sách. 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].' ';

Cái sử dụng range()với $stepcó thể ngắn hơn nếu bạn khởi động nó từ 0 : <?=join(' ',range(0,10*$a=$argv[1],$a));.
manatwork

Quy tắc cho phép bắt đầu từ 0 không được đặt khi tôi thực hiện, nhưng bạn đã đúng; Tôi cập nhật cái này
Crypto

4

J, 8 byte

(i.10)&*

Đây là phạm vi từ 0đến 9bao gồm ( i.10) ngoại quan ( &) với hàm nhân ( *). Điều này bắt đầu từ số không.

Các trường hợp thử nghiệm

   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 ký tự

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

Chạy mẫu:
(Đây là cách tương tác để chạy nó, tương đương với 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 được lưu nhờ @manatwork

Định dạng đầu ra rõ ràng là không cần thiết


1
Mượn từ câu trả lời của tôi:lambda n:" ".join(map(str,range(0,n*11,n)))
manatwork

@manatwork Tôi sử dụng Python 3
TuxCrafting

1
Bạn sử dụng Python 3 nhưng bạn có thể tiết kiệm 6 byte bằng cách sử dụng Python 2:lambda n:range(0,11*n,n)
Jonathan Allan

3

Mata, 15 29 byte

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

Mata là ngôn ngữ lập trình ma trận trong gói thống kê thương mại Stata. Mã tạo một ma trận, nhân với đầu vào (2 trong trường hợp này) và đầu ra ma trận mới

Đầu ra

        1    2    3    4    5    6    7    8    9   10
    +---------------------------------------------------+
  1 |   2    4    6    8   10   12   14   16   18   20  |
    +---------------------------------------------------+

1
Làm thế nào là nó lấy đầu vào? Nó cần phải được tái sử dụng quá.
Jonathan Allan

1
OK, đã chỉnh sửa để làm rõ việc nhận đầu vào
F1rstguess


3

Stata, 46 byte

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

Đầu ra

Cho tô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 |

Có một vài tốc ký bổ sung mà bạn có thể sử dụng ở đây: ob for obs, g cho gen và l cho danh sách. Ngoài ra, có thể có x là _n * `i 'thay vì sử dụng hai biến không? Tôi chưa bao giờ thấy tranh luận trước đây trong STATA. Cảm ơn đã cho tôi thấy một cái gì đó mới!
đánh dấu

3

Cheddar , 20 byte

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

Yay cho chức năng \ o /

Tôi không nghĩ rằng điều này cần giải thích nhưng nếu bạn muốn tôi thêm một câu hỏi :)


Tôi nên học Cheddar. Và n&(*)làm gì? Tôi giả sử (*)có nghĩa giống như điều đó có nghĩa là tôi đã có, nhưng &làm gì trong bối cảnh đó?
Cyoce

@Cyoce nó liên kết
Downgoat

3

Java 7, 61 57 byte

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

Các trường hợp bất khả kháng & thử nghiệm:

Hãy thử nó ở đây.

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

Đầu ra:

2468101214161820
20406080100120140160180200

Không gian là tùy chọn, System.out.print (i * n); sẽ tiết kiệm 4 byte
CameronD17

@ CameronD17 Ah, quy tắc đó đã được thêm vào sau khi tôi đưa ra câu trả lời này, nhưng cảm ơn vì đã đề cập. Tôi đã gỡ bỏ nó.
Kevin Cruijssen

3

JavaScript (ES6), 33 31 byte

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

Đó là một giải pháp đệ quy.



3

Scala, 24 byte

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

Giải trình:

(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

Hãy thử trực tuyến!

Tôi cần phải thực hiện điều đó I * [A, B, C] = [I*A, I*B, I*C] ...

Giải trình

,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

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

Yêu cầu đầu vào dưới dạng một byte đơn (vì BF chỉ có thể hoạt động trên các số lên tới 255) và trả về kết quả dưới dạng byte đơn. Một số giá trị có thể trông giống như ASCII, nhưng chúng không nên được xử lý như vậy; nhìn vào biểu diễn thập phân của các byte được trả về.

Hãy thử trực tuyến!


Bạn có thể lưu 5 byte bằng cách thực hiện>, [> +> ++> +++> ++++> +++++> ++++++> +++++++> ++++ ++++> +++++++++> ++++++++++ [<]> -]> [.>]
Jeff

@Jeff Thật không may, điều đó phá vỡ bất kỳ đầu vào nào cao hơn 25 vì byte sẽ tràn, đặt lại về 0. Các tràn tràn 0được khớp bởi [<], điều này làm cho toàn bộ vòng lặp quá trình vô tận.
Steven H.

Đúng, nhưng tràn byte dẫn đến kết quả đầu ra không chính xác với mã của bạn, phải không?
Jeff

1
@Jeff Họ là đầu ra chính xác, họ chỉ hoạt động trong mod 255.
Steven H.

2

JavaScript, 42 byte

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

Tôi không biết rõ về JS, bạn có thể chuyển số gia vào phần kiểm tra không?
Jonathan Allan

Tôi đã chỉnh sửa nó. Bây giờ thì ổn rồi.
Rizze

Nó cảnh báo ngay bây giờ với cảnh báo ().
Rizze

Nó đã cảnh báo cho tôi mà không cần cảnh báo: ở đây - tôi lấy lại, cần nhấp vào "chạy" chứ không chỉ "thử" để tải lại
Jonathan Allan

1
@Jonathan ALLan Gì?
Rizze

2

MATLAB, 12 byte

@(x)x*[1:10]

Không thực sự nhiều cho nó. Một hàm ẩn danh lấy xđầu vào và nhân nó với vectơ [1:10]. Hiển thị như ans = 2 4 6 ... Cũng hoạt động trong Octave.

Hãy thử trực tuyến .


2

PowerShell v2 +, 23 byte

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

Đưa đầu vào thông qua đối số dòng lệnh, các vòng lặp trong phạm vi 1tới 10, mỗi vòng lặp đặt số đó *$ntrên đường ống. Đầu ra thông qua ẩn Write-Outputở cuối kết quả thực hiện chương trình trong các giá trị phân tách dòng mới.

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

Ung dung:

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

Biên dịch và chạy với (đầu vào 4)

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

Đầu ra

40 36 32 28 24 20 16 12 8 4 

Kiểm tra nó

Demo



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

Đã lưu 3 byte nhờ Grizzly.


Ít nhất bạn không cần các dấu ngoặc đơn xung quanh a, nhưng tôi nghĩ cũng có thể sáng tạo theo vị trí của ++.
Neil

2

Khối , 24 byte

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

Cubix là một esolang 2 chiều, dựa trên ngăn xếp. Cubix khác với các lang 2D khác ở chỗ mã nguồn được bao bọc bên ngoài khối lập phương.

Kiểm tra nó trực tuyến! Lưu ý: bạn sẽ phải sao chép-dán mã và có độ trễ 50 ms giữa các lần lặp.

Giải trình

Điều đầu tiên trình thông dịch làm là tìm ra khối lập phương nhỏ nhất mà mã sẽ phù hợp. Trong trường hợp này, độ dài cạnh là 1. Sau đó, mã được đệm bằng no-op .cho đến khi tất cả sáu mặt được lấp đầy. Khoảng trắng được xóa trước khi xử lý, vì vậy mã này giống hệt như trên:

    ; ;
    . .
I 1 . N - ? W .
; ; ) W @ / S o
    . .
    * O

Đây là một cái ngắn hơn một chút bằng cách sử dụng các tùy chọn ngăn xếp mớiI.0.WrN;-!@vrW>r)*O;o
MickyT
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.