Đầu vào:
Số nguyên n
là >=0
hoặc >=1
( f(0)
là tùy chọn)
Đầu ra:
Số n
thứ 'trong dãy bên dưới, HOẶC dãy lên đến và bao gồm n
số thứ.
Sự nối tiếp:
(0),1,-1,-3,0,5,-1,-7,0,9,-1,-11,0,13,-1,-15,0,17,-1,-19,0,21,-1,-23,0,25,-1,-27,0,29,-1,-31,0,33,-1,-35,0,37,-1,-39,0,41,-1,-43,0,45,-1,-47,0,49,-1,-51,0,53,-1,-55,0,57,-1,-59,0,61,-1,-63,0,65,-1,-67,0,69,-1,-71,0,73,-1,-75,0,77,-1,-79,0,81,-1,-83,0,85,-1,-87,0,89,-1,-91,0,93,-1,-95,0,97,-1,-99
Trình tự này được xây dựng như thế nào?
f(n=0) = 0
(tùy chọn)
f(n=1) = f(0) + n
hoặc f(n=1) = 1
f(n=2) = f(1) - n
f(n=3) = f(2) * n
f(n=4) = f(3) / n
f(n=5) = f(4) + n
vv
Hoặc trong mã giả:
function f(integer n){
Integer result = 0
Integer i = 1
Loop as long as i is smaller than or equal to n
{
if i modulo-4 is 1:
result = result plus i
if i modulo-4 is 2 instead:
result = result minus i
if i modulo-4 is 3 instead:
result = result multiplied with i
if i modulo-4 is 0 instead:
result = result integer/floor-divided with i
i = i plus 1
}
return result
}
Nhưng như bạn có thể đã lưu ý, có hai mẫu trong chuỗi:
0, ,-1, ,0, ,-1, ,0, ,-1, ,0, ,-1, ,0, ,-1, ,...
,1, ,-3, ,5, ,-7, ,9, ,-11, ,13, ,-15, ,17, ,-19,...
Vì vậy, bất kỳ cách tiếp cận khác dẫn đến trình tự tương tự tất nhiên là hoàn toàn tốt.
Quy tắc thử thách:
- Đầu vào 0 chỉ mục và 1 chỉ mục sẽ dẫn đến cùng một kết quả (đó là lý do tại sao
f(0)
tùy chọn cho đầu vào 0 chỉ mục nếu bạn muốn bao gồm nó). - Bạn được phép xuất
n
số thứ tự của chuỗi này. Hoặc toàn bộ chuỗi lên và bao gồmn
số thứ. (Vì vậy,f(5)
có thể dẫn đến một trong hai5
hoặc0,1,-1,-3,0,5
.)- Nếu bạn chọn xuất chuỗi lên đến và bao gồm số
n
', định dạng đầu ra là linh hoạt. Có thể là một chuỗi phân cách danh sách / mảng, dấu phẩy / dấu cách / dòng mới hoặc được in thành STDOUT, v.v.
- Nếu bạn chọn xuất chuỗi lên đến và bao gồm số
- Phép chia (
/
) là phép chia số nguyên / sàn, làm tròn về 0 (không phải là vô cực âm như trường hợp trong một số ngôn ngữ).
Quy tắc chung:
- Đây là môn đánh gôn , vì vậy câu trả lời ngắn nhất bằng byte thắng.
Đừng để ngôn ngữ mã-golf ngăn cản bạn đăng câu trả lời với các ngôn ngữ không mã hóa. Cố gắng đưa ra một câu trả lời càng ngắn càng tốt cho ngôn ngữ lập trình 'bất kỳ'. - Các quy tắc chuẩn áp dụng cho câu trả lời của bạn, vì vậy bạn được phép sử dụng STDIN / STDOUT, các hàm / phương thức với các tham số thích hợp và kiểu trả về, các chương trình đầy đủ. Cuộc gọi của bạn.
- Lỗ hổng mặc định bị cấm.
- Nếu có thể, vui lòng thêm một liên kết với một bài kiểm tra cho mã của bạn.
- Ngoài ra, xin vui lòng thêm một lời giải thích nếu cần thiết.
Các trường hợp kiểm tra bổ sung ở trên n=100
:
Input Output
1000 0
100000 0
123 -123
1234 -1
12345 12345
123456 0