Làm một máy in số nguyên đa năng là tốt và tất cả, nhưng viết một mã duy nhất in nhiều số khác nhau thì rất khó. Sẽ không dễ dàng hơn để tạo một tập lệnh tạo ra một số, nhưng cũng cung cấp cho bạn một tập lệnh mới để có được số tiếp theo?
Thử thách:
Viết mã xuất ra một số nguyên duy nhất N
và mã thực thi. Mã tiếp theo sẽ xuất ra N+1
và một mã có thể xuất ra N+2
. Tiếp tục con đường này cho đến khi bạn đạt được N = 15
. (Số in cuối cùng phải là 15).
Quy tắc:
- Không có đầu vào (giả sử đầu vào trống).
- Chương trình đầy đủ hoặc chức năng hoặc các định dạng thuận tiện khác được cho phép.
- Mã đầu tiên sẽ xuất ra
1
. - Bạn không thể xuất số không hàng đầu. Tức là bạn không thể in
01
cho1
. - Đầu ra phải ở định dạng
N, Code_for_N+1
. Lưu ý rằng đầu ra được phân tách bằng dấu phẩy và một khoảng trắng. Mã choN+1
không có dấu ngoặc kép xung quanh.N , Code_for_N+1
không được chấp nhận (khoảng trắng phía trước dấu phẩy). Trailing newlines là OK. - (Các) ký tự đầu tiên của đầu ra phải là số. (Không có không gian hàng đầu, hoặc
ans = N
). - Số được in không phải là một phần của mã tiếp theo (mã có thể chứa số này, nhưng bạn không thể lấy số đầu ra làm một phần của mã)
- Ví dụ: Đầu ra cho
N=2
có thể là :2, printer 2
. Trong trường hợp này,printer 2
là mã choN=3
. Bạn không thể sử dụng toàn bộ đầu ra:2, printer 2
làm mã choN=3
.
- Ví dụ: Đầu ra cho
- Các tập lệnh có thể bằng các ngôn ngữ khác nhau
- Các kiểu dữ liệu không liên quan (số có thể là một chuỗi), nhưng nó không thể được bao quanh bởi bất cứ thứ gì (dấu ngoặc kép, dấu ngoặc đơn, v.v.).
- Nếu có một mã được xuất ra
N=15
thì nó phải inSTOP!
(xem phần thưởng) hoặc không in bất cứ thứ gì (thậm chí không phải là khoảng trắng hoặc dòng mới).- Mã cho
N=15
không thể sập (nhưng xuất ra STDERR là OK). - Bạn bị loại nếu mã đầu ra cho
N=15
bản in16
hoặc bất cứ thứ gì khác (trừ trường hợp tiền thưởng).
- Mã cho
- Xây dựng trong điều hành quine không được phép.
- Truy cập tệp nguồn thông qua hệ thống tệp không được phép.
Tiền thưởng:
-10 byte nếu mã in 15 cũng tạo ra mã in " STOP!
"
Các ví dụ sử dụng cú pháp Python: (rõ ràng, những điều này sẽ chỉ hoạt động cho các số nguyên được chọn, không phải từ 1 đến 15.)
N = 1
print "1, print 2"
1, print 2
---
N = 15
print 15
15
---
N = 15 (Qualifies for the -10 bytes bonus)
print "15, print 'STOP!'"
15, print 'STOP!'
print 'STOP!'
STOP!
----
N = 15 (Qualifies for the -10 bytes bonus)
print "15, disp('STOP!')"
15, disp('STOP!') (disp('STOP!') outputs STOP! in MATLAB)
----
N = 15 (This one is not OK. The submission is disqualified)
print "15, print 16"
15, print 16
Luật chơi golf tiêu chuẩn được áp dụng! Mã nhỏ nhất (cho N = 1) tính bằng byte thắng!
14, print(14+1)
hay không?
f=>f+""
sẽ không hợp lệ? (f+""
trả về mã xây dựng của hàm.)