Cramming The Gramming - Mười hai nhiệm vụ Tweet


42

Sếp của bạn vừa gửi email cho bạn một danh sách 12 nhiệm vụ lập trình mà anh ta cần thực hiện càng sớm càng tốt. Các nhiệm vụ đủ đơn giản nhưng ông chủ của bạn, là một ông trùm phần mềm trẻ tuổi bị mạng xã hội mê hoặc, khẳng định rằng các giải pháp của bạn có thể phù hợp trong một tweet trên Twitter .

Điều này có nghĩa là bạn chỉ có mã có giá trị 140 byte để giải quyết tất cả các tác vụ, trung bình là 11,67 byte cho mỗi tác vụ. (Có, Twitter đếm các ký tự nhưng ông chủ của bạn đặc biệt nói byte.)

Bạn nhận ra rằng không có cách nào để giải quyết tất cả 12 nhiệm vụ trong 140 byte nhưng bạn nghi ngờ rằng ông chủ của bạn sẽ không thực sự kiểm tra tất cả các giải pháp của bạn. Vì vậy, bạn tiến hành giải quyết càng nhiều nhiệm vụ càng tốt, bỏ qua một số trong số chúng. Suy nghĩ của bạn là nó không quan trọng tập hợp các nhiệm vụ bạn hoàn thành, nó chỉ có giá trị nếu tập hợp con là càng lớn càng tốt .

Bạn có thể hoàn thành bao nhiêu nhiệm vụ?

Thử thách

Viết tối đa 12 chương trình khác nhau, mỗi chương trình sẽ giải quyết chính xác một trong 12 nhiệm vụ được liệt kê dưới đây. Tổng tích lũy độ dài của các chương trình này không được vượt quá 140 byte

Ngoài ra, bạn có thể viết một chương trình duy nhất dài không quá 140 byte, lấy một số nguyên từ 1 đến 12 và (lý tưởng) tiến hành giải quyết nhiệm vụ tương ứng, lấy thêm đầu vào khi cần thiết. Không phải tất cả các nhiệm vụ cần phải làm việc, nhưng chỉ những nhiệm vụ được tính vào điểm số của bạn. Nhiệm vụ không hoạt động được phép lỗi hoặc làm bất cứ điều gì khác.

Trong cả hai trường hợp, "chương trình" trên thực tế có thể là một hàm lấy đầu vào làm đối số hoặc lời nhắc cho nó và in hoặc trả về đầu ra. Vì vậy, ví dụ, bạn có thể viết một hàm 140 byte trông giống như f(taskNumber, taskInput)hoặc bạn có thể viết các đoạn mã riêng cho từng tác vụ, một số là các hàm và một số là các chương trình chính thức.

Những chi tiết khác:

  • Tất cả các mã phải được viết bằng cùng một ngôn ngữ.

  • Như thường lệ, đầu vào phải đến từ stdin, dòng lệnh, đối số hàm hoặc bất cứ điều gì thông thường đối với ngôn ngữ của bạn. Đầu ra được in ra thiết bị xuất chuẩn hoặc ngôn ngữ thay thế gần nhất của ngôn ngữ của bạn hoặc được trả về trong một loại thích hợp.

  • Một số lượng hợp lý của định dạng đầu vào là tốt; ví dụ trích dẫn xung quanh chuỗi hoặc \nthay vì dòng mới thực tế.

  • Đầu ra phải chính xác là những gì được gọi cho không có định dạng hoặc khoảng trắng bên ngoài. Ngoại lệ là một dòng mới duy nhất tùy chọn.

  • Mã chỉ chạy trong môi trường REPL không cấu thành chương trình hoặc chức năng.

  • Bạn không thể viết nhiều chương trình giải quyết nhiều nhiệm vụ. Đó là một chương trình (lý tưởng) giải quyết tất cả các nhiệm vụ hoặc (lý tưởng) 12 chương trình mà mỗi chương trình giải quyết một nhiệm vụ.

  • Đăng một giải pháp nhiệm vụ mà bạn không viết hoặc chỉ sửa đổi một chút là không được phép mà không quy kết cho tác giả ban đầu, và lý tưởng nhất là cũng được phép. Nếu câu trả lời của bạn chủ yếu bao gồm các giải pháp ngắn nhất từ ​​tất cả các câu trả lời khác thì đó phải là một wiki cộng đồng.

Chấm điểm

Trình gửi hoàn thành hầu hết các nhiệm vụ là người chiến thắng. Nếu hai bài nộp kết hợp, bài nào có ít byte nhất sẽ thắng. Nếu số byte được gắn, bài nộp trước đó sẽ thắng. Câu trả lời wiki cộng đồng không được phép giành chiến thắng.

Hãy chắc chắn để cho chúng tôi biết những nhiệm vụ bạn đã giải quyết, không chỉ là bao nhiêu!

Cược chấp cho người không chơi gôn:

Có khả năng thách thức này sẽ bị chi phối bởi các ngôn ngữ chơi gôn . Nhiều ngôn ngữ có thể gặp khó khăn khi giải quyết một hoặc hai tác vụ trong phạm vi 140 byte. Do đó, bạn có thể gửi câu trả lời không cạnh tranh trong đó giới hạn là 3 tweet, tức là 420 byte. Tất cả các quy tắc khác vẫn giữ nguyên.

Nhiệm vụ

Nhiệm vụ 1 - Ba số có thể tạo thành một tam giác?

Lấy ba số nguyên dương và đưa ra một giá trị trung thực / sai lệch cho biết liệu ba dòng có độ dài đó có thể tạo thành một hình tam giác hay không . Bạn không thể cho rằng các số đến theo thứ tự cụ thể.

Ví dụ thật (một trên mỗi dòng):

20 82 63
1 1 1
2 3 4
1 2 2

Ví dụ giả mạo:

6 4 10
171 5 4
1 1 2
1 2 3

Nhiệm vụ 2 - Gần nhất với một triệu

Cho một chuỗi có đúng 7 chữ số thập phân (0-9), sắp xếp lại chúng để có được một số càng gần càng tốt với một triệu. Đó là, abs(1000000 - rearrangedNumber)nên được giảm thiểu.

In hoặc trả về số kết quả dưới dạng một số nguyên, không phải là một chuỗi (vì vậy không nên có các số 0 đứng đầu trừ khi đó là tiêu chuẩn cho ngôn ngữ của bạn).

ví dụ: một đầu vào 9034318nên dẫn đến 984331(và không 1033489).

2893984nên trở thành 2348899.

0001000nên trở thành 1000000.

0000020nên trở thành 200000.


Nhiệm vụ 3 - Trình mô phỏng bàn phím đơn giản

Lấy một chuỗi các chữ cái thường (az), dấu cách và dấu ngoặc nhọn <>. Đọc từ trái sang phải, chuỗi này biểu thị các phím được nhấn trên bàn phím tiêu chuẩn trong khi trình soạn thảo văn bản trống ban đầu được mở. Các chữ cái và không gian tương ứng với các phím thông thường của chúng nhưng <tương ứng với phím mũi tên trái và >phím mũi tên phải, cả hai đều di chuyển con trỏ khi nhấn.

<di chuyển con trỏ sang trái một ký tự hoặc không làm gì nếu con trỏ ở đầu chuỗi.
>di chuyển con trỏ đúng một ký tự hoặc không làm gì nếu con trỏ ở cuối chuỗi.

Xuất chuỗi có trong trình soạn thảo văn bản một khi tất cả các phím trong chuỗi đầu vào đã được nhấn. Xuất ra mã thoát để di chuyển con trỏ không được phép.

Sẽ luôn có ít nhất một ký tự phím mũi tên không liên kết trong đầu vào.

ví dụ đầu vào ui<<q>>ck <<<<<<the<<<<>>> >>>>>>>>brown x<o<fsẽ mang lại the quick brown fox.

op<<l>>t<<<lam>>>>>>imi<<<><>>>zer<<<<<<<<<<<<<<<<<<>>><>mnên cho llammoptimizer.

e< <c<b<anên cho abc e.

<<<>><><<><toast>><<>><><<>><nên cho toast.


Nhiệm vụ 4 - Chữ cái PHIM

Trong nhiều phông chữ, 6 của chữ hoa chữ bảng chữ cái tiếng Anh bao gồm toàn bộ các đường ngang và dọc: E, F, H, I, L, và T. Chúng tôi sẽ gọi những chữ cái này.

Lấy một chuỗi các chữ cái in hoa (AZ) và đếm số lượng dòng trong các chữ cái FILTHE, xuất ra số nguyên kết quả.

E, F, H, I, L, Và Tcó 4, 3, 3, 3, 2, và 2 dòng tương ứng.

ví dụ: GEOBITScó 4 + 3 + 2 = 9 dòng một phần của các chữ cái FILTHE (for .E..IT.), vì vậy đầu ra phải là 9.

ABCDEFGHIJKLMNOPQRSTUVWXYZnên đầu ra 17.

ABCDGJKMNOPQRSUVWXYZnên đầu ra 0.

FILTHYLINESINLETTERSnên đầu ra 39.


Nhiệm vụ 5 - Alex đệ quy A.

Người điều hành Alex A. của chúng tôi có một chữ cái đầu tiên khá bí ẩn, "A".

Bây giờ tôi không chắc chắn, nhưng tôi nghĩ A.là viết tắt của .A xelA. Và tôi cũng khá chắc chắn rằng .Aở đó lén lút đại diện cho Alex A..

Do đó, để có được tên đầy đủ của Alex, chúng ta phải mở rộng ra A..A:

Alex A. -> Alex [A.] -> Alex [.A xelA] -> Alex .A xelA -> Alex [.A] xelA -> Alex [Alex A.] xelA -> Alex Alex A. xelA -> etc.

Có chương trình của bạn lấy một số nguyên không âm và mở rộng Alex A.nhiều lần, xuất ra chuỗi kết quả.

Vì vậy,
0trở thành Alex A.,
1trở thành Alex .A xelA,
2trở thành Alex Alex A. xelA,
3trở thành Alex Alex .A xelA xelA,
4trở thành Alex Alex Alex A. xelA xelA,
5trở thành Alex Alex Alex .A xelA xelA xelA,
và như vậy.

(Tôi đã làm điều này bởi vì tôi cảm thấy tồi tệ vì vô tình để Alex rời khỏi thử thách cống nạp mod của tôi .: P)


Nhiệm vụ 6 - Xoay Numpad

Lấy một số nguyên từ 1 đến 9, bao gồm (bạn có thể lấy nó dưới dạng chuỗi). Xuất ra hình vuông 3 × 3 chữ số

789
456
123

xoay theo gia số 90 ° sao cho chữ số đầu vào xuất hiện ở bất cứ đâu trên hàng trên cùng. Khi 5đầu vào là bất kỳ phép quay nào là đầu ra hợp lệ vì 5không thể xoay lên trên cùng.

ví dụ: khi nào 3là đầu vào, cả hai

963
852
741

321
654
987

là đầu ra hợp lệ.

Đối với đầu vào 4, chỉ

147
258
369

là đầu ra hợp lệ.


Nhiệm vụ 7 - Chia số thành hàng chục

Lấy một chuỗi các chữ số thập phân không trống (0-9) và đưa ra một giá trị trung thực nếu nó có thể được chia thành các phần liền kề trong đó tất cả các chữ số trong mỗi phần tổng hợp chính xác đến 10. Nếu điều này là không thể, hãy đưa ra một giá trị giả.

ví dụ: 19306128có thể được chia ra như thế 19|3061|28, tất cả các phần tổng hợp thành 10 (1 + 9, 3 + 0 + 6 + 1, 2 + 8), do đó, nên xuất một giá trị trung thực.

Ví dụ thật (một trên mỗi dòng):

19306128
073
730
0028115111043021333109010
2222255

Ví dụ giả mạo:

6810410
9218
12341
5222225
000

Nhiệm vụ 8 - Đồng hồ vuông

Đi trong một chuỗi multiline có kích thước phù hợp.

Đầu ra 12nếu đầu vào là

 _ _
| | |
|_ _|

Đầu ra 3nếu đầu vào là

 _ _
| |_|
|_ _|

Đầu ra 6nếu đầu vào là

 _ _
| | |
|_|_|

Đầu ra 9nếu đầu vào là

 _ _
|_| |
|_ _|

Không có trường hợp đầu vào khác.


Nhiệm vụ 9 - Khung nghệ thuật

Đi trong một chuỗi 4 byte chứa một trong mỗi khung trái (, [, {, và <trong bất kỳ thứ tự.

Thêm dấu ngoặc phải tương ứng để chuỗi dài 8 byte và có đường đối xứng dọc. ví dụ [<({trở thành [<({})>].

Sau đó đảo ngược mọi dấu ngoặc trong chuỗi này. ví dụ [<({})>]trở thành ]>)}{(<[.

Xuất chuỗi ngoặc 8 byte ban đầu với phiên bản đảo ngược ở trên và dưới trên các dòng riêng biệt.

Vì vậy, đầu ra cuối cùng cho đầu vào [<({sẽ là

]>)}{(<[
[<({})>]
]>)}{(<[

Tương tự, đầu ra cho <({[nên

>)}][{(<
<({[]})>
>)}][{(<

Đầu vào (<<[không hợp lệ vì {thiếu và có thêm <.


Nhiệm vụ 10 - Perimiterize

Lấy một lưới văn bản hình chữ nhật (nhỏ nhất 1 × 1) được làm bằng .'đại diện cho không gian trống và X' đại diện cho gạch đặc. Các tế bào vượt ra ngoài giới hạn lưới được coi là trống rỗng. Bạn có thể giả sử mỗi trong số 4 hàng và cột cạnh lưới sẽ chứa ít nhất một X.

ví dụ: đầu vào hợp lệ có thể là:

XXX.....X.....
X..X...X.X....
XXX.....X....X

Xuất ra một lưới văn bản hình chữ nhật khác trong đó mọi ô trống lân cận một Xtrực giao hoặc đường chéo, bao gồm cả các ô bên ngoài lưới đầu vào , sẽ trở thành o. Vì vậy, về cơ bản, một perimiter của o'được vẽ xung quanh tất cả các phần của gạch rắn. Lưới mới không nên lớn hơn nó phải có.

Vì vậy, đầu ra của ví dụ trên sẽ là:

ooooo...ooo.....
oXXXoo.ooXoo....
oXooXo.oXoXo.ooo
oXXXoo.ooXoo.oXo
ooooo...ooo..ooo

Tương tự, đầu ra của đầu vào XXX..X.Xphải là

oooooooooo
oXXXooXoXo
oooooooooo

và xuất

oooooooooo.
oXXXooXoXo.
oooooooooo.

sẽ không hợp lệ vì cột ngoài cùng bên phải trống là không cần thiết.

Bạn có thể sử dụng bất kỳ 3 biệt ASCII in ký tự thay ., Xo.


Nhiệm vụ 11 - Quảng trường Sator

Xuất hình vuông Sator :

SATOR
AREPO
TENET
OPERA
ROTAS

Bất kỳ chữ cái nào cũng có thể là chữ thường hoặc chữ hoa, vì vậy

SatOR
aRePO
tenet
OPERa
RoTaS

cũng là đầu ra hợp lệ.

Không có đầu vào.


Nhiệm vụ 12 - Tweet chính

Không có đầu vào nhưng xuất ra một chuỗi ASCII có thể in 140 byte chứa ít nhất một trong số 95 ký tự ASCII có thể in được. (Vì vậy, 45 ký tự sẽ được nhân đôi.)

Tổng các mã ký tự của tất cả 140 byte trong chuỗi này phải là một thủ Sophie Germain , tức là một số nguyên tố pnhư vậy mà 2p+1cũng là số nguyên tố. Mã ký tự cho không gian là 32, 33 cho !, 34 cho ", và lên đến 126 cho ~. Tổng có thể được tính bằng Python là sum(map(ord, myString)).

Một ví dụ đầu ra là:

! "#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~STUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~d

Tổng mã ký tự là số nguyên tố 12203 có số nguyên tố an toàn tương ứng là 24407.


7
Tôi sẽ rất ấn tượng nếu bất cứ ai thực sự có thể giải quyết mọi thứ trong phạm vi dưới 140 byte, ngay cả với CJam / Pyth
Fatalize

9
Tôi rất vinh dự được tham gia .a ni eb ot deronoh ma Tôi ... thử thách của bạn. : P
Alex A.

các tác vụ được phép kết thúc với một lỗi sau khi kết quả được in ra đầu ra?
torcado

1
Làm thế nào chúng ta nên đếm byte từ imports? Giả sử tôi viết 5 hàm trong đó 2 hàm cần cùng một mô-đun (ví dụ import Math), số này có được tính hai lần không?
nimi

2
Tôi đang bỏ phiếu để đóng câu hỏi này ngoài chủ đề vì đây là một thử thách đa phần với sự tương tác không đủ giữa các phần
pppery

Câu trả lời:


10

Pyth, 9 tác vụ trong 136 byte

Nhiệm vụ 1: 7 byte

<-F_SQ0

Trình diễn, thuyết trình

Sắp xếp theo thứ tự giảm dần ( _SQ), trừ phép trừ chúng ( a-b-c), kiểm tra xem kết quả có âm hay không.

Nhiệm vụ 2: 14 byte

sho.a-sN^T6.pz

Trình diễn, thuyết trình

Hình thành tất cả các hoán vị chuỗi ( .pz), sắp xếp chúng ( o) dựa trên giá trị tuyệt đối của chênh lệch ( .a-) giữa số ( sN) và một triệu ( ^T6).

Lấy chuỗi đầu tiên như vậy ( h) và chuyển đổi nó thành một số. ( s).

Nhiệm vụ 4: 19 byte

s/L+\EPP*3"EFHILT"z

Trình diễn, thuyết trình

Sao chép "EFHILT"ba lần ( *3), xóa dấu LT( PP) và thêm dấu E( +\E). Ánh xạ mỗi chữ cái trong đầu vào số lần xuất hiện của nó trong chuỗi đó. ( /L ... z). Tổng. ( s).

Nhiệm vụ 5: 16 byte

u+"Alex "_GhQ".A

Trình diễn, thuyết trình

Bắt đầu với "A.", đảo ngược và thêm một "Alex "để bắt đầu, nhập + 1 lần.

Nhiệm vụ 7: 13 byte

}Y-RTsMM./sMz

Chuyển đổi chuỗi đầu vào thành một danh sách các số có 1 chữ số ( sMz). Hình thành tất cả các phân vùng ( ./). Tính tổng mỗi phần tử của mỗi phân vùng ( sMM). Xóa tất cả 10 giây khỏi mỗi danh sách con ( -RT). Kiểm tra xem cái này có làm trống bất kỳ danh sách con nào không bằng cách kiểm tra xem danh sách trống có trong danh sách tổng thể không ( }Y).

Nhiệm vụ 8: 11 byte

*3h%%CQC\Ç4

Trình diễn, thuyết trình

Ma thuật Modulo. Chuyển đổi sang số ( CQ), lấy mod 199 ( C\Ç= 199) và lấy mod đó 4. Sau đó thêm 1 và nhân 3.

Nhiệm vụ 9: 21 byte

J+Xz"<{[()]}>")_zJ_JJ

Trình diễn, thuyết trình

Đầu tiên, chúng ta tạo dòng đầu tiên, bao gồm đầu vào được dịch sang các ký tự nhân bản ( Xz"<{[()]}>")), theo sau là đầu vào đảo ngược ( + ... _z) và lưu nó vào J. Sau đó in dòng đó, ngược lại và dòng đó một lần nữa ( J_JJ).

Nhiệm vụ 11: 22 byte

+J"SATOR
AREPO
TEN"t_J

Trình diễn, thuyết trình

Chỉ cần in một chuỗi và đảo ngược của nó, nhưng không sao chép trung tâm N.

Nhiệm vụ 12: 13 byte

++G*19\3srd\

Trình diễn, thuyết trình

Có một ký tự invisble DEL( 7F) ở cuối mã.

Bản in này

abcdefghijklmnopqrstuvwxyz3333333333333333333 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~

trong đó có tổng ký tự 11321. Nó bao gồm G, bảng chữ cái, 19 3giây và tất cả các ký tự ASCII có thể in được.


28

CJam, 8 9 nhiệm vụ trong 140 byte

Trước hết, đây là một kịch bản bạn có thể sử dụng để sắp xếp các giải pháp của mình và cho bạn biết những giải pháp nào sẽ phù hợp với tweet:

{\s\Se[oSo}:F;
qN/ee{W=,}${)_,_T+:T140>X*_{0:X;}*'=@11+*N+*o\~)YF_,ZFTZFoNo}/

Chỉ cần dán 12 giải pháp của bạn vào đầu vào, một giải pháp trên mỗi dòng. Chạy nó ở đây. Cột đầu tiên là số tác vụ, kích thước thứ hai của nó ( tính bằng ký tự - bạn sẽ phải tự sửa lỗi này nếu khác với số byte), thứ ba là kích thước tích lũy. Các chương trình phù hợp với tweet được tách biệt với phần còn lại bằng một dòng ===.

Đối với tôi, đầu ra trông như thế này:

 1   7   7 q~$~\->
 8  10  17 qDbJ%5/)3*
12  12  29 ',32>_51>'d
 7  13  42 Aq{~-Ace|}/N&
 2  15  57 qe!{~1e6-z}$0=~
 4  19  76 q"FIHEELT"3*H<fe=:+
 5  20  96 ".A"q~){" xelA"+W%}*
 9  22 118 q_{_')>+)}%W%+_W%N@N3$
11  22 140 "SATOR\AREPO\TEN"_W%1>
====================================
 6  25 165 9,:)s3/zq~))3mdg*{W%z}*N*
 3  43 208 LLq{_'=-z({+}{'=>_)$\[{)@+\}{\(@\+}]=&}?}/\
10  45 253 0XW]_m*qN/{'.f+W%z}4*f{\~@m>fm>N*}(\{8f^.e>}/

Vì vậy, đây là các nhiệm vụ hiện tại tôi có thể phù hợp với tweet.

Nhiệm vụ 1 - Ba số có thể tạo thành một tam giác? - 8 7 byte

Cảm ơn jimmy23013 vì đã tiết kiệm 1 byte.

q~$~\->

Bộ thử nghiệm.

Đầu vào dự kiến ​​sẽ là danh sách kiểu CJam.

Điều này khá đơn giản: kiểm tra xem bên lớn nhất có ngắn hơn tổng của hai bên kia không. Hoặc tương tự, kiểm tra xem bên ngắn nhất dài hơn sự khác biệt của hai bên còn lại:

q~  e# Read and eval input.
$~  e# Sort the values and dump them on the stack.
\-  e# Subtract the middle value from largest.
>   e# Check if the smallest value is greater than that.

Nhiệm vụ 2 - Gần nhất với một triệu - 15 byte

qe!{~1e6-z}$0=~

Bộ thử nghiệm.

Lực lượng vũ phu đơn giản:

q        e# Read input.
e!       e# Get all permutations.
{        e# Sort by...
  ~      e#   Evaluate the permutation to get its numerical value X.
  1e6-z  e#   abs(X - 1,000,000)
}$
0=       e# Pick the first element (which minimises the difference)
~        e# Evaluate it to get rid of the leading zeroes.

Nhiệm vụ 4 - Chữ cái PHIM - 21 19 byte

Cảm ơn jimmy23013 vì đã lưu 2 byte.

q"FIHEELT"3*H<fe=:+

Bộ thử nghiệm.

Ý tưởng là tạo ra một chuỗi chứa mỗi chữ cái PHIM một lần cho mỗi dòng trực giao của chúng. Điều này được thực hiện thông qua một số thao tác chuỗi hài hước:

q          e# Read the input.
"FIHEELT"  e# Push this string. It first contains the 3-line letters, then the 2-line 
           e# letters, where we include 'E' twice to make it count for 4.
3*         e# Repeat 3 times: "FIHEELTFIHEELTFIHEELT"
H<         e# Truncate to 17 characters: "FIHEELTFIHEELTFIH". This is chosen such that
           e# it discards the third repetition of the 2-line letters.
fe=        e# For each character in the input, count its occurrences in this new string.
:+         e# Sum them all up.

Nhiệm vụ 5 - Alex đệ quy A. - 27 20 byte

".A"q~){" xelA"+W%}*

Bộ thử nghiệm.

Áp dụng các trạm biến áp A..Atrực tiếp là quá đắt. Thay vào đó, chúng tôi nhận thấy rằng chúng tôi chỉ phải xử lý một trường hợp, nếu chúng tôi đảo ngược chuỗi mỗi lần. Hơn nữa, việc chuẩn bị trước Alex(và một khoảng trắng) mỗi lần tương đương với việc mở rộng ban đầu. Chúng ta có thể lưu một byte khác bằng cách nối thêm đảo ngược trước khi đảo ngược chuỗi:

".A"        e# Start with ".A" (the -1st iteration if you like).
q~)         e# Read input, eval, increment (so the following block is run at least once.)
{           e# Repeat this block that many times...
  " xelA"+  e#   Append " xelA".
  W%        e#   Reverse the string.
}*

Nhiệm vụ 7 - Chia số thành hàng chục - 18 16 13 byte

Aq{~-Ace|}/N&

Bộ thử nghiệm. (Với dấu ngoặc quanh mỗi đầu ra.)

Không chính xác thân thiện với người dùng: giá trị trung thực là một dòng mới, giá trị giả là chuỗi rỗng.

Ý tưởng cơ bản rất đơn giản: thêm các chữ số vào tổng số đang chạy mà chúng tôi đặt lại bất cứ khi nào nó chạm đúng 10. Tổng số phải bằng 0 ở cuối đầu vào. Để bắt đầu, nó hóa ra ngắn hơn tổng cộng là 10 và trừ đi các chữ số, đặt lại tổng số bất cứ khi nào chúng ta đạt 0. Tuy nhiên, chúng ta cần đảm bảo rằng chúng ta không trả về một cái gì đó trung thực khi đầu vào là tất cả các số 0. Cách ngắn nhất tôi tìm thấy để làm điều đó là đặt lại tổng số cho ký tự bằng mã điểm 10 (nguồn cấp dữ liệu), và sau đó kiểm tra xem cuối cùng chúng ta có ký tự đó trên ngăn xếp chứ không phải số 10. Điều này hoạt động, bởi vì cả số nguyên 0 và ký tự 0 (byte null) đều sai lệch:

A     e# Push a 10, the initial running total.
q{    e# For each character in the input...
  ~-  e#   Evaluate the character to get the digit and subtract it from the total.
  Ac  e#   Push a linefeed character.
  e|  e#   Logical OR of the running total and the linefeed character (using
      e#   short-circuiting).
}/
N&    e# Take the set intersection with the string containing a linefeed character.
      e# If the total is still a number of any character other than the linefeed,
      e# this will yield an empty string. Otherwise, the string will remain unchanged
      e# and the linefeed will be printed.

Nhiệm vụ 8 - Đồng hồ vuông - 10 byte

qDbJ%5/)3*

Bộ thử nghiệm.

Đây chỉ là một số phép thuật modulo khá ngẫu nhiên trên các mã ký tự xảy ra để băm đến các giá trị chính xác. Tôi khá tin rằng một cái gì đó ngắn hơn là có thể, nhưng đó là cái ngắn nhất tôi tìm thấy (theo chương trình) cho loại cấu trúc này:

q   e# Read the input.
Db  e# Treat the character codes of the string as digits in base 13. This maps the
    e# four inputs to the values: 2023940117708546863
    e#                            2023940113755405840
    e#                            2023940781838850791
    e#                            2023940113755390292
J%  e# Take the result modulo 19. This gives [2, 5, 12, 18], respectively.
5/  e# Divide by 5 (rounding down). [0, 1, 2, 3], respectively.
)   e# Increment. [1, 2, 3, 4], respectively.
3*  e# Multiply by 3. [3, 6, 9, 12], respectively.

Nhiệm vụ 9 - Khung nghệ thuật - 23 22 byte

Cảm ơn Sp3000 vì đã tiết kiệm 1 byte.

q_{_')>+)}%W%+_W%N@N3$

Bộ thử nghiệm.

Khá đơn giản. Ánh xạ giữa dấu ngoặc trái và phải được thực hiện bằng cách thêm 2 (hoặc 1 cho dấu ngoặc đơn):

q_      e# Read input and duplicate.
{       e# Map this block onto each character...
  _')>  e#   Duplicate and check if it's not a parenthesis.
  +     e#   Add the result, leaving parentheses unchanged and incrementing the
        e#   other bracket types.
  )     e#   Increment again.
}%
W%+     e# Reverse and add to the original, giving the middle line.
_W%     e# Duplicate and reverse, giving the first line.
N@      e# Push a linefeed, pull up the middle line.
N3$     e# Push another linefeed, copy the first line.

Nhiệm vụ 11 - Sator Square - 22 byte

"SATOR
AREPO
TEN"_W%1>

Kiểm tra nó ở đây.

Có lẽ là giải pháp nhàm chán nhất trong tất cả. Nó đẩy nửa đầu của chuỗi và sau đó đảo ngược nó:

"SATOR
AREPO
TEN"    e# Push everything up to the centre of the square.
_W%     e# Duplicate and reverse.
1>      e# Discard the "N", because we don't want that twice.

Nhiệm vụ 12 - Tweet chính - 13 12 byte

',32>_51>'d

Kiểm tra nó ở đây. (Với đầu ra chẩn đoán cho kết quả.)

Sau khi 'không thể in được <DEL>(0x7F), SE sẽ loại bỏ. Để dán sao chép, sử dụng phiên bản này thay thế:

'~),32>_51>'d

Chuỗi in là

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~STUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~d

Đó là, nó chứa một lần chạy của tất cả các ký tự, tiếp theo là một lần chạy khác từ Sđến ~, theo sau là một lần chạy d. Tổng số mã ký tự là 12203. Tôi đã tìm thấy điều này thông qua một chút thử nghiệm và lỗi.

'~),32>  e# Push a string with all printable characters.
_51>     e# Duplicate this and discard the first 51 of them.
'd       e# Push a "d".

1
q~$~\-> q"FIHEELT"3*H<fe=:+.
jimmy23013

@ jimmy23013 Ohhhh, tôi cứ quên rằng chúng ta có e=những ngày này.
Martin Ender

Tôi đã hy vọng có đủ câu trả lời để đăng một cái gì đó trước khi bạn phát hiện ra cách làm số 5 trong 20 ký tự.
Peter Taylor

19

Pyth, 9 tác vụ trong 138 byte

Điều này mất khá nhiều thời gian.

Tôi nghĩ rằng 9 nhiệm vụ là giới hạn cho Pyth. Bao gồm chương trình ngắn nhất tiếp theo (Sator Square) cho kết quả 160 byte. Chơi golf 20 byte là khá khó xảy ra. Có 2 hoặc 3 nhiệm vụ hơi xấu và có thể rút ngắn, nhưng nhìn chung tôi khá hài lòng với các giải pháp.

Nhiệm vụ 1 - Ba số có thể tạo thành một tam giác?, 8 byte

>FsMc2SQ

Dùng thử trực tuyến: Đầu vào thông thường hoặc Bộ kiểm tra

Nhiệm vụ 2 - Gần nhất với một triệu, 14 byte

ho.a-^T6NsM.pz

Dùng thử trực tuyến: Đầu vào thông thường hoặc Bộ kiểm tra

Nhiệm vụ 4 - Chữ cái PHIM, 20 byte

s*Vtsmmdd5/Lz"TLIHFE

Dùng thử trực tuyến: Đầu vào thông thường hoặc Bộ kiểm tra

Nhiệm vụ 5 - Alex đệ quy A., 16 byte

u+"Alex "_GhQ".A

Dùng thử trực tuyến: Đầu vào thông thường hoặc Bộ kiểm tra

Nhiệm vụ 6 - Xoay Numpad, 20 byte

jeo}zhN.uC_N3_c3jkS9

Dùng thử trực tuyến: Đầu vào thông thường hoặc Bộ kiểm tra

Nhiệm vụ 7 - Chia các chữ số thành hàng chục, 15 byte

qTu+WnGTvHG-zZZ

Dùng thử trực tuyến: Đầu vào thông thường hoặc Bộ kiểm tra

Nhiệm vụ 8 - Đồng hồ vuông, 12 byte

*3%%Cz1978 5

Dùng thử trực tuyến: Đầu vào thông thường hoặc Bộ kiểm tra

Nhiệm vụ 9 - Khung nghệ thuật, 20 byte

V3_WtN+z_Xz"[<({})>]

Dùng thử trực tuyến: Đầu vào thông thường hoặc Bộ kiểm tra

Nhiệm vụ 12 - Tweet chính, 13 byte

++*d44srd\\&

Dùng thử trực tuyến: Đầu vào thường xuyên


2
Kết hợp các kết quả đệ trình của chúng tôi trong 133 byte.
isaacg

9

TI-BASIC, 11 12 Nhiệm vụ trong 728 830 byte

Nhiệm vụ 1 trong 7 byte

:2max(Ans)`<`sum(Ans

Đầu vào là một danh sách trong Ans.

Nhiệm vụ 2 trong 92 110 byte

:seq(expr(sub(Ans,I,1)),I,1,7→L₁
:SortA(L₁
:min(7,1+sum(not(L₁
:{L₁(1)+sum(seq(L₁(I))₁₀^(I-8),I,2,7)),L₁(Ans)+sum(seq((I`>`Ans)L₁(I)₁₀^(1-I),I,2,7
:ᴇ6Ans(1+(0`>`min(ΔList(abs(1-Ans

Nhắc cho một danh sách các chữ số Đầu vào là một chuỗi trong Ans.

Nhiệm vụ 3 trong 119 byte

:Input Str1
:"  →Str2
:For(I,1,length(Str1
:sub(Str1,I,1→Str3
:inString("`<>`",Ans
:If Ans:Then
:max(0,min(L,C+2Ans-3→C
:Else
:C+1→C
:L+1→L
:sub(Str2,1,C)+Str3+sub(Str2,C+1,L-C+1→Str2
:End
:End
:sub(Str2,2,L

Nhắc cho một chuỗi. Giả sử C và L không xác định hoặc 0.

Nhiệm vụ 4 trong 35 byte

:sum(int(2seq(inString("TLIHFE",sub(Ans,I,1))^.4,I,1,length(Ans

Đầu vào là một chuỗi trong Ans.

Nhiệm vụ 5 trong 63 byte

:Ans/2→C
:sub("A.A",1+2fPart(C),2
:For(I,0,C
 :"Alex "+Ans
 :If I≠C
  :Ans+" xelA
:End
:Ans

Đầu vào là một số trong Ans.

Nhiệm vụ 6 trong 66 byte

: 𝑖 ^ ((Ans <7) (Ans-3 (Ans >3: For (Y, 1,1: Dep sum (seq ((5-real (AnsX + Ans𝑖Y) -3imag (AnsX + Ans𝑖Y)) ₁₀ ^ ( X + 1), X, ,11,1: Kết thúc

Đầu vào là một số trong Ans.

Nhiệm vụ 7 trong 36 43 byte

:Input <strike>L₁</strike>Str1
:.5
:For(I,1,<strike>dim(L₁</strike>length(Str1
 :Ans+<strike>L₁(I</strike>expr(sub(Str1,I,1
 :If 10=int(Ans
  :0
:End
:not(Ans

Nhắc cho một danh sách các chuỗi chữ số .

Nhiệm vụ 8 trong 29 byte

:18fPart(sum(seq(I(sub(Ans,I,1)=" ")/6,I,1,15

Đầu vào là một chuỗi trong Ans.

Nhiệm vụ 9 trong 83 byte

:For(I,1,16,2
 :If I<8
  :Ans+sub("`)}]>`",inString("`({[<`",sub(Ans,4,1)),1
 :sub(Ans,I,1)+Ans
:End
:For(I,⁻1,1
 :Disp sub(Ans,9-8abs(I),8
:End

Đầu vào là một chuỗi trong Ans.

Nhiệm vụ 10 trong 159 byte

:1→X
:Input Str1
:2+length(Str1→L
:"X
:While 2+L`>`length(Ans
 :Ans+Ans→Str2
:End
:Ans→Str3
:While 1
 :"XX
 :Ans+Str1+Ans→Str1
 :For(I,1,L
  :Ans+sub("0X.",2expr(sub(Str2,I+1,1))+not(expr(sub(Ans,I,3)+sub(Str2,I,3)+sub(Str3,I,3))),1
 :End
 :Disp sub(Ans,L+3,L
 :Str2→Str3
 :Str1→Str2
 :Input Str1
:End

Sử dụng X0.thay vì .Xotương ứng (xin lỗi không có gì phù hợp). Nhắc nhở cho đầu vào từng dòng. Bạn phải nhập hai dòng Xs để xem tất cả đầu ra và sau đó thoát + thứ 2 để thoát.

Nhiệm vụ 11 trong 39 byte

:Disp "SATOR
:Disp "AREPO
:Disp "TENET
:Disp "OPERA
:Disp "ROTAS

Nhiệm vụ 12 trong 77 byte

: Ans + "tvm_I% LinReg (ax + b) DS <(getKeyconj (1-PropZTest (dayOfWk (Manual-Fit C / YANOVA (* hàng (HorizRegEQUnarchive [J] # $! &'', 0,234567890:; = >? @GBQX \^ _`qw {|} ~

Hoặc dưới dạng hex:

72702ABB21FFDBADBB25BB3EEF06EF16
6331BB5917746201BB695C092DBBD2BB
D3BBD4AEAE2B3A323334353637383930
3EBBD66A6CAFBBD147425158BBD7F0BB
D9BBD5BBC1BBC708BBD809BBCF

Đầu vào là một chuỗi chứa "trong Ans.

Điều này thực sự là không thể trong TI-BASIC. Có thể chỉnh sửa một chương trình cơ bản và sử dụng các mã thông báo 2 byte nhất định để đưa tất cả các ký tự ascii có thể in vào mã nguồn, nhưng đó không phải là vấn đề. Vấn đề là không có cách nào để lưu trữ một "ký tự thành một chuỗi trong cơ bản thuần túy trên một calc sạch mà không có đầu vào chương trình (áp dụng tương tự cho ký tự đó, nhưng điều đó không thể in được ascii). Tuy nhiên, có thể đưa "vào một phương trình bên ngoài cơ bản, sau đó bạn có thể sử dụng cơ bản để chuyển đổi phương trình thành một chuỗi và hiển thị chuỗi đó. Trên hết, dù sao chỉ có đủ chỗ trên màn hình cho 128 ký tự.


7

Perl, 4 tác vụ trong 117 byte

Hãy thử một ngôn ngữ thực sự ;)

Chưa từ bỏ, thậm chí có thể nén 5 tác vụ trong 140 byte, mặc dù không thể!

* Nhiệm vụ 1: 30 + 1 = 31 byte

@F=sort@F;say$F[0]+$F[1]>$F[2]

Sử dụng: perl -aM5.010 entry.pl input.txt

* Nhiệm vụ 4: 32 + 1 = 33 byte

y/ELTFHI/4223/;s/./+$&/g;$_=eval

Sử dụng: perl -p entry.pl input.txt

Nhiệm vụ 5: 54 byte

say"Alex "x($_/2+1).qw(A. .A)[$_%2]." xelA"x(--$_/2+1)

-2b cảm ơn Dom Hastings

Sử dụng: echo 4 | perl -M5.010 entry.pl

Nhiệm vụ 7: 37 + 2 = 39 byte

($i+=$_)>10&&exit,$i%=10for@F;$_=!$i;

Sử dụng: perl -pF entry.pl input.txt

* Nhiệm vụ 8: 21 + 2 = 23 byte

$_=y/|_ 
/14/dr/64%14

Đây là một chút khó khăn. Bắt đầu ra bằng cách thay thế mỗi |với xvà mỗi _với ykhông gian sau đó thay thế để sản xuất một chuỗi hai chữ số duy nhất cho mỗi lưới ( yyxxyxxyyx, yyxxyxxyyxyyxxxxyxyx, yyxxxxyxyxyyxyxxxyyx, yyxyxxxyyxyyxxxxyyx, yyxxxxyyx). Tiếp theo, tôi đã viết một chương trình cho các giá trị bruteforce cho xy, và các phép toán có thể được thực hiện trên các số được tạo sau khi thay thế xyđể cho đầu ra 3,6,9,12 cho mỗi số. Cuối cùng, x=1, y=4và các hoạt động ma thuật đã /64%14.

Sử dụng: perl -0p entry.pl input.txt

Nhiệm vụ 11: 34 byte

say"SATOR
AREPO
TENET
OPERA
ROTAS"

Sử dụng: perl -M5.010 entry.pl

* Nhiệm vụ 12: 30 byte

say d.pack"C*",32..126,83..126

Sử dụng: perl -M5.010 entry.pl

Tuyên bố miễn trừ trách nhiệm: -M5.010 được coi là 'miễn phí'


Có phải Ruby ít thật hơn Perl? ;)
Martin Ender

9
Khi tôi thấy bạn trả lời (trông giống như tiếng ồn), tôi sẽ không coi Perl là ngôn ngữ thực sự ;)
Fatalize

1
Công việc tốt đẹp! Tôi nghĩ rằng bạn có thể lưu 2 byte qw(A. .A)[$_%2]thay vì ("A.",".A")[$_%2]trong nhiệm vụ 5 và tôi chắc chắn rằng bạn có thể nhận được một vài byte khác ...
Dom Hastings

6

Ruby, 4 tác vụ trong 280 byte (không cạnh tranh)

Đây chỉ là một nỗ lực, tôi sẽ tiếp tục thực hiện các nhiệm vụ sau (và hy vọng chơi golf những cái hiện có).

Nhiệm vụ 1

a=gets.split.map &:to_i;p a.all?{|e|e<a.inject(:+)-e}

Nhiệm vụ 2

p gets.chars.permutation.map{|a|a.join.to_i}.min_by{|x|(x-1e6).abs}

Nhiệm vụ 4

n,b='EFHILT',0;gets.chars.map{|c|b+=n[c]==p ? 0:[4,3,3,3,2,2][n.index c]};p b

Nhiệm vụ 5

a='Alex A.';gets.to_i.times{|i|i%2<1 ? a.sub!('A.','.A xelA'):a.sub!('.A',a)};$><<a

6

TI-BASIC, 12 tác vụ trong 994 byte

Tải xuống tất cả dưới dạng tệp nhóm TI ( .8xg )

(Thẻ spoiler được thêm vào mỗi yêu cầu.)

Nhiệm vụ 1 - Ba số có thể tạo thành một tam giác? - 7 byte

Tải xuống dưới dạng tệp chương trình TI-83 + ( .8xp )

:2max(Ans)<sum(Ans

Nhiệm vụ 2 - Gần nhất với một triệu - 114 byte

Tải xuống dưới dạng tệp chương trình TI-83 + ( .8xp )

:int(10fPart(Ans\10^(\-cumSum(binomcdf(6,0→X
:"sum(\L\X\10^(\cumSum(not(binompdf(6,0→\Y1\
:SortD(\L\X
:\Y1\→X
:sum(not(\L\X
:If Ans
:Then
:If max(\L\X=1
:X+\E\6-\10^(\6-Ans→X
:SortA(\L\X
:augment(ΔList(cumSum(\L\X)),{0→X
:End
:{X,\Y1\
:Ans(1+(0>min(ΔList(abs(\E\6-Ans

Nhiệm vụ 3 - Trình mô phỏng bàn phím đơn giản - 131 127 byte

Tải xuống dưới dạng tệp chương trình TI-83 + ( .8xp )

:Input Str1
:DelVar X1→Y
:"..→Str2
:For(Z,1,length(Str1
:sub(Str1,Z,1→Str3
:(Ans=">")-(Ans="<
:If Ans
:Then
:max(1,min(Y+Ans,X+1→Y
:Else
:sub(Str2,1,Y)+Str3+sub(Str2,Y+1,X-Y+2→Str2
:X+1→X
:Y+1→Y
:End
:End
:sub(Str2,2,X

Nhiệm vụ 4 - Chữ cái FILTHE - 34 byte

Tải xuống dưới dạng tệp chương trình TI-83 + ( .8xp )

:sum(int(\³√(\12seq(inString("TLIHFE",sub(Ans,X,1)),X,1,length(Ans

Nhiệm vụ 5 - Alex đệ quy A. - 107 byte

Tải xuống dưới dạng tệp chương trình TI-83 + ( .8xp )

:Input X
:".A..
:For(X,0,X
:Ans→Str1
:5int(.5X+.5
:sub(Str1,1,Ans+1)+sub(".A xelAlex A.",6gcd(X,2)-5,7)+sub(Str1,Ans+4,5X-Ans+1
:End
:sub(Ans,2,5X+2

Nhiệm vụ 6 - Xoay Numpad - 86 byte

Tải xuống dưới dạng tệp chương trình TI-83 + ( .8xp )

:.3Ans+2(Ans=6→X
:[[9,6,3][8,5,2][7,4,1
:For(X,0,X
:rowSwap(Ans\^T\),1,3
:End
:Ans
:*row+(10,*row+(10,Ans\^T\,1,2),2,3
:For(X,1,3
:Disp Ans(3,X
:End

Nhiệm vụ 7 - Chia số thành hàng chục - 77 byte

Tải xuống dưới dạng tệp chương trình TI-83 + ( .8xp )

:Ans+"0
:seq(expr(sub(Ans,X,1)),X,1,length(Ans
:augment(Ans,{10not(not(max(Ans→X
:1→X
:Repeat Ans≥dim(\L\X
:Ans+1
:If 10=sum(\L\X,X,Ans
:Ans+1→X
:End
:X=Ans

Nhiệm vụ 8 - Đồng hồ vuông - 35 byte

Tải xuống dưới dạng tệp chương trình TI-83 + ( .8xp )

:12-3max(seq(X(sub(Ans,6gcd(X,2)+X,1)≠" "),X,1,3

Nhiệm vụ 9 - Khung nghệ thuật - 86 byte

Tải xuống dưới dạng tệp chương trình TI-83 + ( .8xp )

:Input Str1
:For(X,1,4
:For(Y,0,1
:abs(X-9not(Y→Z
:"()[]{}<>
:sub(Ans,inString(Ans,sub(Str1,X,1))+Y,1
:Output(1,Z,Ans
:Output(2,9-Z,Ans
:Output(3,Z,Ans
:End
:End

Nhiệm vụ 10 - Perimiterize - 218 byte

Tải xuống dưới dạng tệp chương trình TI-83 + ( .8xp )

:".
:For(A,0,\E\9
:Input Str1
:Ans+Str1→Str2
:If Str1≠".
:End
:length(Ans→X
:round(A\^-1\(Ans-2→B
:seq(expr(sub(Str2,A,1)),A,2,X-1→B
:πAns→C
:"augment(Ans,augment(Ans,\L\B))+augment(Ans,augment(\L\C,Ans))+augment(\L\B,augment(Ans,Ans→X
:seq(0,A,1,B
:\L\X→A
:For(C,0,A+1
:seq(\L\A(A+BC),A,1,B→C
:int(Ans→B
:{0
:1+not(\L\X)+not(fPart(\L\X→B
:".
:For(X,1,B+2
:Ans+sub("120",\L\B(X),1
:End
:Disp sub(Ans,2,B+2
:End

Những thay thế này đã được thực hiện: 0= ., 1= X, 2=o

Đối với đầu vào (sau khi chương trình bắt đầu), hãy nhập một hàng tại một thời điểm, nhấn enter tại mỗi lần ngắt dòng, cho đến khi hàng cuối cùng được viết ra. Sau đó nhấn enter, nhập một dấu chấm, sau đó nhấn enter lần nữa để gửi toàn bộ chuỗi.

Nhiệm vụ 11 - Sator Square - 38 byte

Tải xuống dưới dạng tệp chương trình TI-83 + ( .8xp )

:Disp "SATOR","AREPO","TENET","OPERA
:"ROTAS

Nhiệm vụ 12 - Tweet chính - 151 byte

Tải xuống dưới dạng tệp chương trình TI-83 + ( .8xp )

:Ans+"!#$%&'()*+,-./01234567889:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
:For(X,1,45
:Ans+" 
:End
:Ans

Ansnên chứa một trích dẫn kép, được thực hiện bằng cách nhập trực tiếp \Y1\từ trình chỉnh sửa phương trình và chạy Equ►String(\Y1\,Str1:Str1từ màn hình chính.

Độ dài đầu ra là 140. 8 xuất hiện hai lần và có 45 khoảng trắng cùng với các ký tự ASCII khác xuất hiện một lần. Số tiền này lên tới (33 + 34 + ... + 126) + 56 + 32 × 45 = 8969, một nguyên tố của Sophie Germain.


Tôi hỏi OP, và bạn có thể đếm một mã thông báo như sin(như hiển thị s, i, n, và (trong Task 12
lirtosiast

0

Python 3, 1 tác vụ, 268 byte, không cạnh tranh

Tôi đã thử Nhiệm vụ # 2 trong Python 3.5.2 Tôi chưa quen với việc chơi golf và python

import itertools
def f2(l):
    n=1000000
    l=list(itertools.permutations(l))
    j = len(l)
    m=[None]*j
    while j>0:
        j -= 1
        m[j]= int(''.join(str(i) for i in l[j]))
        l[j]=abs(n-m[j])
    l.sort()
    k=n-l[0]
    return(n+l[0],k)[k in m]

Chào mừng đến với PPCG. Bạn sẽ tìm thấy trong python 3, bạn có thể đặt một số câu lệnh của mình trên một dòng, ví dụ bạn có thể viết x=10;print(x)Điều này sẽ giúp một số phần được thụt lề của bạn.
george
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.