Tôi có một thử thách đơn giản cho bạn lần này. Đưa ra một mảng các số nguyên dương A (hoặc tương đương trong ngôn ngữ của bạn), thay thế mỗi mục A i bằng tổng các phần tử A i tiếp theo của A , quay trở lại từ đầu nếu không có đủ các mục.
Như thường lệ, bạn có thể cạnh tranh trong bất kỳ ngôn ngữ lập trình nào và có thể nhận đầu vào và cung cấp đầu ra thông qua bất kỳ phương thức tiêu chuẩn nào và ở bất kỳ định dạng hợp lý nào, trong khi lưu ý rằng các lỗ hổng này bị cấm theo mặc định. Bạn cũng có thể lấy kích thước của A làm đầu vào. Đây là môn đánh gôn , vì vậy bài nộp ngắn nhất (tính bằng byte) cho mọi ngôn ngữ sẽ thắng.
Ví dụ / Trường hợp kiểm tra
Cho trước [1,3,4,5]
, mã của bạn sẽ xuất ra [3,10,13,14]
, bởi vì 1
được thay thế bởi 3
, 3
được thay thế bằng 4+5+1=10
(chú ý cách nó được bọc lại từ đầu), 4
bởi 5+1+3+4=13
và 5
bởi 1+3+4+5+1=14
.
Cho [3,2,1,9]
, chương trình của bạn sẽ sản xuất [12,10,9,33]
, bởi vì chúng tôi thay thế 3
bằng 2+1+9=12
, 2
với 1+9=10
, 1
bằng 9
và 9
bằng3+2+1+9+3+2+1+9+3=33
(thông báo cách thức chúng tôi quấn lại từ đầu nhiều hơn một lần).
Một số trường hợp thử nghiệm khác để bạn lựa chọn:
[4,3,2,1] -> [10,7,5,4]
[3,2,1,9] -> [12,10,9,33]
[1,3,4,5] -> [3,10,13,14]
[4,4,3,2,2] -> [11,11,8,6,8]
[3,5,3,2,1] -> [10,14,6,4,3]
[3,2,4,3,2,1,1] -> [9,7,7,4,2,1,3]
[7,8,6,5,4,3,2,1,5] -> [29,33,20,15,11,8,6,5,30]
[28,2,4,2,3,2,3,4,5,3] -> [137,6,10,5,9,7,12,38,39,34]
[1,2,3,4,5,4,3,2,1,2,3,4,3,2,1] -> [2,7,13,14,12,8,5,3,2,7,9,7,4,2,1]