Danh sách những năm sinh có thể có của người sống


40

Các thách thức

Xuất ra một danh sách các năm bắt đầu với năm hiện tại và kết thúc 120 năm trước. Năm sinh của mỗi con người sống sẽ được đưa vào danh sách này.

Chi tiết

Danh sách nên theo thứ tự giảm dần.

Mọi chức năng tích hợp để thao tác với mảng và / hoặc danh sách đều được cho phép.

Mã ngắn nhất trong byte thắng.

Khi chạy năm nay, sản lượng sẽ là

2016, 2015, ..., 1897, 1896

Khi chạy vào năm tới, sản lượng sẽ là

2017, 2016, ..., 1898, 1897

V.v.

Cập nhật

  • Một số đã hỏi về định dạng của danh sách. Như hầu hết đã đoán, nó không thành vấn đề. Chèn bất kỳ dấu phân cách giữa các số. Theo trực giác hầu hết chèn một dấu phẩy hoặc dấu cách hoặc cả hai, dòng mới hoặc xuất ra một mảng.
  • Những siêu nhân Quasi như Jeanne Calment là một ngoại lệ đối với quy tắc được nêu trong câu hỏi của tôi.

7
Tôi khuyên bạn nên sử dụng hộp cát để nhận phản hồi trước khi đăng thử thách (không chỉ cho thử thách đầu tiên của bạn - hầu hết chúng ta sử dụng nó cho mọi thử thách).
trichoplax

3
Tôi không thấy có gì sai với thử thách này. Một điều có thể đáng để xác định là liệu đầu ra sẽ luôn bắt đầu với năm 2016 hay với năm mà nó được chạy (nó sẽ bắt đầu với năm 2017 nếu chạy vào năm tới?). Điều này sẽ ảnh hưởng đến việc đó là một thách thức đầu ra cố định hay cần truy cập vào ngày hiện tại.
trichoplax

19
Jeanne Louise Calment sống 122 năm.
Zenadix

10
Lad, đó là cách quá sớm để chấp nhận.
Addison Crump

6
Thử thách: "In tất cả các số từ y- 120 đến y" hay "in tất cả các năm sinh của người sống"? Bởi vì nếu ai đó sinh năm 1896 còn sống ngày hôm nay, điều đó không có nghĩa là vẫn còn những người từ năm 1898 xung quanh.
CompuChip

Câu trả lời:


19

Pyke, 6 byte

wC7m-

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

w     - 121
   m- - for i in range(^):
 C7   -  current_year-i

(Sau đó w, mật mã cho 153 có mặt nhưng nó không thể in được)


1
Wow, đó là một dấu kiểm nhanh chóng. Có lẽ chờ đợi một câu trả lời Jelly?
Adám

Mặc dù tôi đồng ý rằng đó là một dấu kiểm nhanh, tôi nghi ngờ ngay cả Jelly cũng có thể làm điều đó trong 5
Blue

Tại sao bạn có một biến cho 121? Chỉ vì nó là một số vuông? Nhưng cũng được thực hiện!
Denker

3
Cái wthực sự có một byte không thể in được sau đó làm cho nó 121
Blue

1
@LeakyNun nó có thể cấu hình, bất kể mặc định cho máy chủ mà nó đang chạy. Trên pyke.catbus, tôi đặt nó thành Windows-1252
Blue

11

Pyth, 11 9 8 byte

-L.d3C\y

Hoạt động bằng cách ánh xạ trên phạm vi [0...120]và trừ mọi số từ năm hiện tại. Phạm vi được xây dựng ngầm bằng cách sử dụng 121làm đối số bản đồ. Để tránh một khoảng trắng tách biệt giữa .d3121chúng ta có được số này bằng cách chuyển đổi ysang mật mã.
Cảm ơn @FryAmTheEggman đã đưa ra phương pháp này!

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

Giải pháp cũ 9 byte:

_>121S.d3

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

Xây dựng phạm vi [1...<current year>]và chỉ mất 121 yếu tố cuối cùng của nó.


1
Bạn nên đảo ngược danh sách để bắt đầu với năm hiện tại
Christiaan Westerbeek

1
-L...tiết kiệm một vài byte.
Jakube

1
@ChristiaanWesterbeek Bỏ lỡ phần đó, đã sửa. Cảm ơn vì đã phát hiện ra!
Denker

@Jakube Đã sử dụng một cách tiếp cận khác ngay bây giờ, nhưng cảm ơn vì đã nhắc nhở rằng điều này tồn tại, đã không sử dụng Pyth rất nhiều trong lần trước!
Denker

1
-L.d3C\ynên làm việc cho 8.
FryAmTheEggman

9

R, 34 byte

(format(Sys.Date(),"%Y"):0)[1:121]

Xem ở đây trên một thông dịch viên trực tuyến.

Chỉnh sửa có thể được giảm xuống 33 byte bằng cách sử dụng substr.

(substr(Sys.Date(),1,4):0)[1:121]

nhưng về mặt kỹ thuật, giải pháp này sẽ chỉ hoạt động cho đến 9999-12-31.


3
Điều này thật tuyệt. Tôi không biết nó có thể đánh máy một chuỗi thành một số khi sử dụng :toán tử ...
Andreï Kostyrka

8

AngularJS + Lodash , 274 byte

angular.module('x',[]).controller('x',['$scope',function(x){x.x=_.range(9,new Date().getFullYear()+1).slice(-121).reverse()}])
<script src=//goo.gl/M5LvGe></script><script src=//goo.gl/opljJl></script><select ng-app=x ng-controller=x multiple><option ng-repeat="x in x">{{x}}

Đầu ra

nhập mô tả hình ảnh ở đây


8

BASH + coreutils, 35 33 byte

x=`date +%Y`;seq $x -1 $((x-120))

2
trong trường hợp của bạn, trích dẫn là không cần thiết: thay đổi: date +"%Y"thànhdate +%Y
Olivier Dulac

1
x=`date +%Y`;seq $x -1 $[x-120]hoặc seq $[x=`date +%Y`] -1 $[x-120]làm việc là tốt.
Dennis

Ngắn hơn 10 byte nếu bạn có OSX hoặc sẵn sàng cài đặt jottrên Linux
Digital Trauma

7

CJam, 14 12 11 byte

Đã lưu 2 byte nhờ Sp3000 và 1 byte nhờ Martin Ender

et0=121,f-p

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

Giải trình

et0=         e# Push the current year
    121,     e# Push the range 0, 1, ..., 120
        f-   e# For each item in the range, subtract it from current year
          p  e# Print the array

7

HP50g RPL, 97 byte

120 'S' STO DATE ->STR 6 9 SUB OBJ-> 'Y' STO {} S WHILE 0 >= REPEAT Y S - + 'S' DECR END REVLIST

Ung dung:

120
'span' STO     @ Store the span of years to cover.
DATE           @ Get the date as number 11.082016. 
→STR           @ Convert to string "11.082016".
               @ (Number format must allow all these decimal places.)
6 9 SUB        @ "11.082016" Substring for the year.
               @       ^  ^
               @  123456789
OBJ→           @ Convert string to number.
'year' STO     @ Store as the year to start at.
{} span        @ Start empty list to collect the years.
               @ Leave loop counter on the stack.
WHILE 0 ≥      @ Loop until the counter goes negative.
REPEAT
  year span -  @ E.g. on first iteration: 2016 - 120 = 1896.
  +            @ Append the year to the list on the stack.
  'span' DECR  @ Decrement loop counter and leave on stack.
END
REVLIST        @ Put list in reverse chronological order.

Hiển thị danh sách năm 2016 đến năm 1896:

2016 đến 1896


Chỉnh sửa câu trả lời để có được năm hiện tại từ máy tính.
Caleb Paul

6

05AB1E , 8 7 byte

Mã số:

žg120Ý-

Giải trình:

žg         # Get the current year.
  120Ý     # Create the list [0, 1, ..., 119, 120].
      -    # Substract, which leaves [year - 0, year - 1, ..., year - 120].

Sử dụng mã hóa CP-1252 . Hãy thử trực tuyến! .


6

PowerShell, 26 24 byte

@TimmyD phiên bản cải tiến:

0..120|%{(date).Year-$_}

Nghĩa là thuộc to be:

($d=(date).year)..($d-120)

datechạy đi đâuGet-Date


1
Blargh, nên đã trả lời sớm hơn. Đó chính xác là phiên bản đơn giản mà tôi đã sẵn sàng. Sau đó, công việc bị can thiệp: DA phiên bản vui nhộn cũng sẽ là : ((date).year..0)[0..120]; than ôi nó không ngắn hơn.
Joey

1
Tôi thấy thật thú vị khi ngày đó tương đương với Ngày nhận khi ngày thực sự không phải là bí danh của Ngày nhận. Tôi đã thấy điều này được gọi là quy tắc "động từ ngụ ý" và nó hiếm khi được ghi lại trong tài liệu PowerShell.
Bevo

@Bevo Nó hữu ích cho CodeGolf, nhưng hơi mạo hiểm cho bất kỳ mục đích sử dụng nào khác. Xem: codegolf.stackexchange.com/a/778/571 và chuỗi nhận xét; cả hai đều dễ bị đụng độ và rất chậm.
TessellatingHeckler

6

APL Dyalog , 11 10 byte

120↑⌽⍳⊃⎕ts

120↑ lấy 120 yếu tố

của đảo ngược

chỉ số cho đến

yếu tố đầu tiên của

⎕TS TimeStamp ở định dạng [YYYY, M, D, h, m, s, t]

Dùng thử trực tuyến!


Phiên bản cũ:

(⊃⎕TS)-⍳120

⊃⎕TS yếu tố đầu tiên của [YYYY, M, D, h, m, s, t]

- dấu trừ

⍳120 [0, 1, 2, ..., 118, 119]

Yêu cầu ⎕IO←0, được mặc định trên nhiều hệ thống.

Dùng thử trực tuyến!


6

Vitsy + * sh + JavaScript , 33 26 21 18 byte

Vitsy không có truy xuất thời gian / ngày gốc, vì vậy tôi phải sử dụng shell và eval cho cái này.

Cảm ơn @Caleb đã giúp tôi cắt thêm 3 byte!

'Y%+ etad',Dca*-HZ

'Y%+ etad'               Push the string 'date +"%Y"' to the stack.
          ,              Execute through shell. 
           Dca*-         Dupe n, push n - 120.
                H        Pop x, y, push range(x, y) to the stack.
                 Z       Output all stack as characters.

Bạn không thể thử cái này trực tuyến, vì nó sử dụng cả shell AND eval.

Đầu ra là mã ký tự.


Bạn sẽ có thể cắt bớt một vài byte trong số này vì bạn không cần dấu ngoặc kép quanh chuỗi định dạng ngày (vì không có khoảng trắng trong đó); date +%Yhoạt động tốt
Caleb

@Caleb Hoàn hảo, cảm ơn! Làm cho nhu cầu về một eval không tồn tại là tốt.
Addison Crump

5

Ngôn ngữ toán học / Wolfram, 28 byte

Date[][[1]]-#&/@Range[0,120]

Chào mừng đến với PPCG!
Addison Crump

4
Chào mừng đến với PPCG! Bạn không cần sử dụng bản đồ ở đây vì phép trừ được xâu qua các danh sách tự động. Và -Range@121+1lưu một byte trên danh sách dựa trên zero. Và #&@@một byte hơn [[1]]. Điều đó nói rằng, trừ khi có quy định khác trong thử thách, tất cả các bài nộp phải là các hàm hoặc chương trình đầy đủ và mã này chỉ là một đoạn / biểu thức. Cách khắc phục ngắn nhất sẽ khiến nó trở thành một chức năng chưa được đặt tên bằng cách nối thêm &.
Martin Ender

@MartinEnder Cảm ơn bạn đã phản hồi! Lẽ ra tôi nên bắt Minus là danh sách có thể, sai sót nhỏ về tinh thần, nhưng những lời khuyên khác được đánh giá cao!
user6014

#&@@Date[]-#&/@0~Range~120&sẽ tiết kiệm cho bạn hai byte, nhưng sau đó biến nó thành một hàm yêu cầu thêm &vào cuối (mà tôi nghĩ rằng dù sao bạn cũng cần nhu cầu của bạn), do đó, tổng cộng là byte byte.
numbermaniac

5

R, 47 39 byte

as.double(substr(Sys.Date(),1,4))-0:120

Nếu chỉ có ai đó phát minh ra triển khai UTF-8 của R với các chức năng hệ thống được sử dụng thường xuyên viết tắt ...

CẬP NHẬT : đã loại bỏ 7 byte (!) Do plannapus , người đã đề xuất tạo ra một 0:120vectơ thay vì đếm từ ađến (a-120)và 1 byte grâce à user5957401 , người nhận thấy rằng nó doublecũng sẽ hoạt động tốt numeric. Phiên bản cũ:

a=as.numeric(format(Sys.Date(),"%Y"));a:(a-120)

Loay hoay với và seq(a<-...,a-120)chỉ có thể làm tình hình tồi tệ hơn.
Andreï Kostyrka

sử dụng lệnh buộc loại as.doublethay vì as.numericsẽ giúp bạn tiết kiệm một byte. Tương tự, nếu thay vì định dạng một ngày, bạn coi phản hồi ngày là một chuỗi để lấy và sử dụng substr(Sys.Date(),1,4)bạn lưu một byte khác
user5957401



4

php, 73 66 58 42 byte

<?=implode(', ',range($j=date(Y),$j-120));

Đầu ra:

2016, 2015, 2014, 2013, 2012, 2011, 2010, 2009, 2008, 2007, 2006, 2005, 2004, 2003, 2002, 2001, 2000, 1999, 1998, 1997, 1996, 1995, 1994, 1993, 1992, 1991, 1990, 1989, 1988, 1987, 1986, 1985, 1984, 1983, 1982, 1981, 1980, 1979, 1978, 1977, 1976, 1975, 1974, 1973, 1972, 1971, 1970, 1969, 1968, 1967, 1966, 1965, 1964, 1963, 1962, 1961, 1960, 1959, 1958, 1957, 1956, 1955, 1954, 1953, 1952, 1951, 1950, 1949, 1948, 1947, 1946, 1945, 1944, 1943, 1942, 1942 1941, 1940, 1939, 1938, 1937, 1936, 1935, 1934, 1933, 1932, 1931, 1930, 1929, 1928, 1927, 1926, 1925, 1924, 1923, 1922, 1921, 1920, 1919, 1918, 1917 1916, 1915, 1914, 1913, 1912, 1911, 1910, 1909, 1908, 1907, 1906, 1905, 1904, 1903, 1902, 1901, 1900, 1899, 1898, 1897, 1896, 1896

Nếu chúng ta không cần tách riêng ,, thì 58 57 41 byte:

<?=implode(' ',range($j=date(Y),$j-120));

Cảm ơn insertusernamehere đã lưu 16 byte


Bạn không thực sự cần phải tách ra ,, nhìn vào nhiều câu trả lời khác.
Addison Crump

Có vẻ như vậy, nhưng tôi sẽ đưa vào hai tùy chọn để tôi có thể làm những gì nhiều nhất và cũng là những gì được yêu cầu
gabe3886

Tôi đã quản lý để có được câu trả lời bằng dấu phẩy xuống kích thước câu trả lời không dấu phẩy ban đầu của tôi. Đó là nhiều như tôi nghĩ rằng tôi có thể chơi nó
gabe3886

Bạn có thể xóa <?phpthẻ vì chúng tôi cho phép chạy -rmiễn phí
Business Cat

2
Chơi gôn 16 byte :<?=implode(', ',range($j=date(Y),$j-120));
insertusernamehere

4

Python 2, 64 62 54 byte

import time
n=time.gmtime()[0]
exec'print n;n-=1;'*121

@KarlKastor cảm ơn vì 8 byte!


time.gmtime().tm_yearngắn hơn 3 byte
KarlKastor

time.gmtime()[0]thậm chí ngắn hơn
KarlKastor

@KarlKastor tốt đẹp! Chơi với mô-đun thời gian giống như đi vào mê cung mỗi lần đối với tôi. Rất nhiều cách để bị lạc
đồ học

4

PostgreSQL, 57 byte

Ai cần một FROM:-). Có lẽ không nên làm việc, nhưng nó, hãy thử nó tại sqlfiddle

select date_part('y',current_date)-generate_series(0,120)

4

Bash trên OS X, 23

jot 121 `date +%Y` - -1

Điều này cũng sẽ làm việc trên Linux nếu bạn có BSD jotcài đặt (ví dụ sudo apt-get install athena-jot.


3

Python 2, 62 byte

import time
for n in range(121):print int(time.ctime()[-4:])-n

Và ở mức 64 byte:

for n in range(121):print int(__import__("time").ctime()[-4:])-n

3

Oracle SQL 11.2, 111 byte

SELECT LISTAGG(TO_CHAR(SYSDATE,'YYYY')-LEVEL+1,', ')WITHIN GROUP(ORDER BY LEVEL)FROM DUAL CONNECT BY LEVEL<122;

1
Tôi muốn nói rằng listagg không bắt buộc và chỉ tập hợp các hàng được đặt hàng
MickyT

3

Đang xử lý, 51 42 41 byte

for(int i=0;i<121;)print(year()-i+++" ");

Bị đánh cắp

for(int i = 0; i < 121;)
    print(year() - i++ + " ");

Việc xử lý chỉ là một trình bao bọc cho Java nếu bạn không biết và lấy đi phần lớn bản tóm tắt, vì vậy giải pháp rõ ràng cũng siêu ngắn so với phiên bản Java. Cũng mở một cửa sổ để vẽ đồ họa, nhưng việc đó dường như không đủ tiêu chuẩn cho tôi :)


1
for(int i=0;i<121;)print(year()-i+++" ");
Nữ tu bị rò rỉ

Tôi yêu "+++", nó trông rất đáng nghi. Cám ơn vì sự gợi ý!
Cody

3

MATLAB, 18 byte

Giả sử định dạng đầu ra không thành vấn đề (ngoài đơn đặt hàng giảm dần), chương trình sau sẽ in 121 năm qua bắt đầu với hiện tại.

year(date)-(0:120)

Nó yêu cầu MATLAB phiên bản r2014a trở lên. Các phiên bản trước không bao gồm yearchức năng.


3

JavaScript, 55 52 50 49 byte

for(a=d=s=Date().substr(11,4);d-->s-120;)a+=" "+d

+9 byte cho alertdữ liệu (không cần thiết nếu bạn chạy cái này trong bàn điều khiển).

for(a=d=s=Date().substr(11,4);d-->s-120;)a+=" "+d;alert(a)

-4 byte nếu dấu phân cách là không cần thiết.

for(a=d=s=Date().substr(11,4);d-->s-120;)a+=d

for (a = d = s = Date().substr(11, 4); d --> s - 120; )
    a += " " + d;
console.log(a);


1
Các []s dường như là không cần thiết.
Neil

@Neil: Cảm ơn. Giải pháp ban đầu của tôi đã sử dụng một mảng, nhưng tôi đã không nghĩ sẽ loại bỏ nó.
Yay295

1
Bạn có thể lưu một byte bằng cách sử dụng forthay vì whiletrên này : for(a=d=s=Date().substr(11,4);d-->s-120;)a+=" "+d!
Dom Hastings

3

C, 87 85 76 74 65 byte

main(int i,char**v){for(i=0;i<121;printf("%d,",atoi(v[1])-i++));}

Ung dung:

main(int i,char**v){
    for(i = 0; i < 121; printf("%d,", atoi(v[1])-i++));
}

Golf mã đầu tiên của tôi - Bất kỳ con trỏ sẽ được đón nhận. Sẽ rất tuyệt nếu tôi có thể loại bỏ rác argc / argv, nhưng tôi không phải một lập trình viên C giỏi. Cải tiến chào mừng.

EDIT : Năm hiện tại có được từ dòng lệnh - đặc biệt bởi một nhóm các loài chim uống tự động, được huấn luyện tốt.

EDIT 2 : 85 byte Nhờ Easterly Irk (loại bỏ khoảng trắng xung quanh các tham số chức năng arg)

EDIT 3 : 76 byte Cảm ơn anatolyg vì đã chỉ ra rõ ràng (tên verbose argc / argv bị loại bỏ)

EDIT 4 : 74 byte Nhờ Yay295 (char ** v, dấu phân cách năm thay đổi)

EDIT 5 : 65 byte nhờ Yay295 và matt (sử dụng lại biến i, loại bỏ biến x, thay đổi trong khi thành vòng lặp, printf được cập nhật để bao gồm atoi () đọc và i ++)


1
Bạn có thể là một không gian? int argc, char-> int argc,char?
Rɪᴋᴇʀ

2
Thay thế argcbằng c(hoặc tốt hơn thay thế int argcbằng chỉ int) và argvbằng v. Cũng thay thế whilebằng for. Thay đổi thứ hai đòi hỏi một số kinh nghiệm trong C (nhưng có thể vui vẻ bất kể).
anatolyg

1
char*v[]-> char**vtiết kiệm 1 byte. Bạn có thể lưu cái khác bằng cách phân định năm của bạn bằng dấu cách hoặc dấu phẩy thay vì dòng mới.
Yay295

1
Bạn có thể làm cho nó ngắn hơn. 71 byte. main (int c, char ** v) {int i = 0; while (i <120) printf ("% d,", atoi (v [1]) - i ++);}
Matt

2
Thậm chí ngắn hơn. 65 byte main(int i,char**v){for(i=0;i<121;printf("%d,",atoi(v[1])-i++));}
Matt

3

JavaScript, 60 53 48 byte

f=x=>x>Date().split` `[3]-121&&(alert(x),f(x-1))

Tôi đã sử dụng một giải pháp đệ quy.


1
Bạn có thể thay thế console.logbằng alert, và loại bỏ cuối cùng ;.
NoOneIsHãy là

1
Lưu 5 byte với f=x=>x>Date().split" "[3]-121&&(alert(x),f(x-1)), thay thế dấu ngoặc kép bằng backticks.
Xù xì

2

Perl, 33 byte

say+(gmtime)[5]-$_+1900for 0..120

Chạy với -M5.010hoặc -E:

perl -E 'say+(gmtime)[5]-$_+1900for 0..120'

2

k, 27 byte

Đầu ra theo quy định

1@", "/:$(`year$.z.d)-!121;

Thí dụ:

k)1@", "/:$(`year$.z.d)-!121;
2016, 2015, 2014, 2013, 2012, 2011, 2010, 2009, 2008, 2007, 2006, 2005, 2004, 2003, 2002, 2001, 2000, 1999, 1998, 1997, 1996, 1995, 1994, 1993, 1992, 1991, 1990, 1989, 1988, 1987, 1986, 1985, 1984, 1983, 1982, 1981, 1980, 1979, 1978, 1977, 1976, 1975, 1974, 1973, 1972, 1971, 1970, 1969, 1968, 1967, 1966, 1965, 1964, 1963, 1962, 1961, 1960, 1959, 1958, 1957, 1956, 1955, 1954, 1953, 1952, 1951, 1950, 1949, 1948, 1947, 1946, 1945, 1944, 1943, 1942, 1941, 1940, 1939, 1938, 1937, 1936, 1935, 1934, 1933, 1932, 1931, 1930, 1929, 1928, 1927, 1926, 1925, 1924, 1923, 1922, 1921, 1920, 1919, 1918, 1917, 1916, 1915, 1914, 1913, 1912, 1911, 1910, 1909, 1908, 1907, 1906, 1905, 1904, 1903, 1902, 1901, 1900, 1899, 1898, 1897, 1896

Nó có thể được rút ngắn nhiều hơn bằng cách không định dạng đầu ra và chỉ trả về danh sách các số nguyên:

(`year$.z.d)-!121

2

jq, 46 ký tự

(Mã 45 ký tự + 1 ký tự tùy chọn dòng lệnh)

now|strftime("%Y")|tonumber|range(.;.-121;-1)

Chạy mẫu:

bash-4.3$ jq -n 'now|strftime("%Y")|tonumber|range(.;.-121;-1)' | head
2016
2015
2014
2013
2012
2011
2010
2009
2008
2007

Bài kiểm tra trực tuyến


2

Vim, 32 29 tổ hợp phím

Cảm ơn @daniero vì một số trợ giúp về việc lưu một số tổ hợp phím và làm cho đầu ra gọn gàng hơn một chút.

"=strftime('%Y')<Enter>pqqYp<Ctrl-x>q118@q
  • <Enter>Enter
  • <Ctrl-x>Ctrl+X

Giải trình:

"                                          # Put into the register {
 =strftime('%Y')                           #   This year in YYYY form
                <Enter>                    # }
                       p                   # Paste the register
                        qq                 # Record macro q {
                          Y                #   Yank (copy) the current line
                           p               #   Paste
                            <Ctrl-x>       #   Decrment number at cursor
                                    q      # }
                                     118@q # Do macro q 118 times

Định dạng đầu ra:

Mỗi số nằm trên một dòng riêng biệt như dưới đây.

2016
2015
.
.
.
1898
1897

OP rõ ràng yêu cầu một phiên bản chứng minh trong tương lai, vì vậy chỉ có người thứ hai trả lời câu hỏi. Bạn không cần phải bấm phím Enter (thường được gọi là <CR>trong ngữ cảnh Vim) sau :pu=strftime('%Y')? Ngoài ra, bạn có thể bỏ qua một số tổ hợp phím bằng cách sử dụng Yvới các bản sao toàn bộ dòng. Tổng cộng: :pu=strftime('%Y')<CR>qqYp<Ctrl-x>q118@q- 30 tổ hợp phím
daniero

Ngoài ra, bạn có thể kéo ra từ thanh =ghi: "=strftime('%Y')<CR>pqqYp<Ctrl-x>q118@q- 29 tổ hợp phím và nó sẽ thoát khỏi dòng trống đầu tiên
daniero

Nếu bạn cũng được phép sử dụng shell thì bạn có thể lưu thêm năm lần nhấn phím bằng datetiện ích::.!date +\%Y<CR>qqYp<C-x>q118@q
John Gowers
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.