Steven Gerrard đã ghi bao nhiêu bàn thắng?


8

Steven Gerrard sinh ngày 30 tháng 5 năm 1980. Hiện anh đã 37 tuổi. Chúc mừng sinh nhật, Steven!

Để kỷ niệm ngày kỷ niệm của anh ấy, mục tiêu của bạn là nhắc nhở anh ấy số bàn thắng anh ấy ghi được mỗi năm trong giải đấu ra mắt cho Liverpool.

Anh ấy không muốn nhớ những bàn thắng được ghi trước hoặc sau khi chơi cho Liverpool. Nó giống như ghi 0bàn.

Đầu vào

Năm bắt đầu của mùa bóng đá.

Đầu ra

Số bàn thắng mà Steven ghi được trong mùa giải này cho Liverpool.

Danh sách các mùa và mục tiêu

1998–99     0
1999–2000   1   
2000–01     7   
2001–02     3   
2002–03     5   
2003–04     4   
2004–05     7   
2005–06     10  
2006–07     7   
2007–08     11  
2008–09     16  
2009–10     9   
2010–11     4   
2011–12     5   
2012–13     9   
2013–14     13  
2014–15     9

Thí dụ

Input    Output
2002     5
2017     0
1990     0
2014     9

Đây là vì vậy bài nộp ngắn nhất tính theo byte trong mỗi ngôn ngữ sẽ thắng. Giải thích được khuyến khích.


Chúng tôi có phải trả về 0 nếu ngày nằm ngoài phạm vi không hoặc chúng tôi có thể ném ngoại lệ không?
TheLethalCoder

8
@TheLethalCoder Steven Gerrard thích nói rằng anh ấy đã ghi 0bàn. Không ngoại lệ
Weedoze

Câu trả lời:


3

05AB1E , 25 24 byte

•3ßÎó‚4Ëǝï•17в15ÝƵÊØ+Ikè

Hãy thử trực tuyến! hoặc như một bộ thử nghiệm

Giải trình

•3ßÎó‚4Ëǝï•                 # push the number 69255401071877657848
           17в              # convert to list of base-17 digits
                            # produces the list [1,7,3,5,4,7,10,7,11,16,9,4,5,9,13,9,0]

              15Ý           # push the range [0 ... 15]
                 ƵÊØ+       # add the 303rd prime (1999) to each
                     Ik     # get the index of the input in this list
                            # or -1 if outside the range
                       è    # get the element at that index in first list

21

JavaScript (ES6), 47 43 42 39 byte

y=>+'0723135148933694'[y-1999]+y%20%9|0

Làm sao?

Chúng tôi tính toán một xấp xỉ x số lượng các mục tiêu cho một năm nhất định y theo công thức:

x = y % 20 % 9

Đây thực sự là một xấp xỉ rất xấu, nhưng nó luôn nhỏ hơn hoặc bằng giá trị mong đợi v và không bao giờ nhỏ hơn v - 9 , cho phép mã hóa sự khác biệt bằng một chữ số thập phân.

y    | y % 20 | x = y % 20 % 9 | v  | v - x
-----+--------+----------------+----+------
1999 |     19 |              1 |  1 |     0
2000 |      0 |              0 |  7 |     7
2001 |      1 |              1 |  3 |     2
2002 |      2 |              2 |  5 |     3
2003 |      3 |              3 |  4 |     1
2004 |      4 |              4 |  7 |     3
2005 |      5 |              5 | 10 |     5
2006 |      6 |              6 |  7 |     1
2007 |      7 |              7 | 11 |     4
2008 |      8 |              8 | 16 |     8
2009 |      9 |              0 |  9 |     9
2010 |     10 |              1 |  4 |     3
2011 |     11 |              2 |  5 |     3
2012 |     12 |              3 |  9 |     6
2013 |     13 |              4 | 13 |     9
2014 |     14 |              5 |  9 |     4

Bản giới thiệu


Hoàn thành rất tốt.
Xù xì

Chờ đợi. Bạn đang tính toán số lượng mục tiêu từ năm đầu vào, thay vì lập chỉ mục trong cơ sở dữ liệu được mã hóa cứng?
SIGSTACKFAULT

@Blacksilver Tôi cần một xấp xỉ đầu tiên để giảm phạm vi giá trị được lưu trữ từ 1-16 xuống 0-9 . Nhưng vẫn còn một bảng tra cứu được mã hóa cứng để lưu trữ sự khác biệt với các giá trị được tính toán này.
Arnauld

3

JavaScript, 44 byte

y=>parseInt("173547a7bg9459d9"[y-1999],17)|0

1
Chào mừng đến với PPCG. Câu trả lời đầu tiên rất hay :)
Shaggy


1

PowerShell, 65 byte

(($g=(1,7,3,5,4,7,10,7,11,16,9,4,5,9,13,9)["$args"-1999]),0)[!$g]

sử dụng định dạng ternary / mảng để trả về 0 nếu năm không nằm trong mảng.

Điều này quá dài bởi vì powershell không có bất kỳ else return 0 định dạng và toàn bộ mảng là bắt buộc, nếu anh ta ghi được 9 bàn hoặc ít hơn mỗi năm, chúng ta có thể loại bỏ rất nhiều thứ này bằng cách lập chỉ mục thành một chuỗi.


1

Bash, 97 93 byte

a=(1 7 3 5 4 7 10 7 11 16 9 4 5 9 13 9)
((2014<$1||$1<1999))&&(echo 0)||(echo $[a[$1-1999]])

0

C #, 79 72 byte

y=>new[]{0,1,7,3,5,4,7,10,7,11,16,9,4,5,9,13,9}[y>2014|y<1999?0:y-1998];

0

Braingolf v0.6, 48 byte

#ߎ-V173547#
792+82*945994+9&,0R!?1-[v>R]v_:0_|;

Đây là một thứ kì dị.

Nhân vật ߎnày có năm 1998, làm Braingolf theo nghĩa đen cho năm 1998, sau đó được trừ vào đầu vào.

Giải trình:

#ߎ-V173547#
792+82*945994+9&,0R!?1-[v>R]v_:0_|;  Implicit input of n
#ߎ-                                  Subtract 1998 from n
   V                                 Create a new stack and switch to it
    173547                           Digit literals 1, 7, 3, 5, 4 and 7
          #<newline>                 Integer literal 10
792                                  Digit literals 7, 9 and 2
   +                                 Sum the last 2 items (9 and 2) to make 11
    82*                              Digit literals 8 and 2 multiplied to make 16
       9459                          Digit literals 9, 4, 5 and 9
           94+                       Digit literals 9 and 4 summed to make 13
              9                      Digit literal 9
               &,                    Reverse stack
                 0                   Digit literal 0
                  R                  Return to main stack
                   !?                If n != 0
                     1-              Decrement n
                       [...]         Loop, repeat n+1 times
                        v>           Move to next stack and rotate to the right
                          R          Return to main stack
                            v_       Move to next stack and output last item
                              :      Else
                               0_    Push zero and output
                                 |   Endif
                                  ;  Suppress implicit output


0

JavaScript (ES6), 50 41 byte

y=>+`0x${"06243696af8348c8"[y-1999]}`+1|0

Thử nó

f=
y=>+`0x${"06243696af8348c8"[y-1999]}`+1|0
oninput=_=>o.innerText=f(+i.value)
o.innerText=f(i.value=1998)
<input id=i type=number><p id=o>

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.