Lấy cảm hứng từ câu hỏi này từ bạn bè đối thủ của chúng tôi tại Code Review.
Định nghĩa
Một siêu mảng là một mảng trong đó mỗi phần tử mới trong mảng lớn hơn tổng của tất cả các phần tử trước đó. {2, 3, 6, 13}
là một siêu mảng vì
3 > 2
6 > 3 + 2 (5)
13 > 6 + 3 + 2 (11)
{2, 3, 5, 11}
là không một mảng siêu, bởi vì
3 > 2
5 == 3 + 2
11 > 5 + 3 + 2
Một mảng Duper là một mảng mà mỗi phần tử mới trong mảng là lớn hơn so với sản phẩm của tất cả các yếu tố trước đó. {2, 3, 7, 43, 1856}
là một siêu mảng, nhưng nó cũng là một mảng kép
3 > 2
7 > 3 * 2 (6)
43 > 7 * 3 * 2 (42)
1856 > 43 * 7 * 3 * 2 (1806)
Các thách thức
Viết hàm hoặc chương trình lấy một mảng làm đầu vào ở định dạng danh sách gốc ngôn ngữ của bạn và xác định mức độ siêu của mảng. Bạn cũng có thể tùy ý lấy đầu vào độ dài mảng (đối với các ngôn ngữ như C / C ++). Ngoài ra, bạn có thể giả định rằng tất cả các số trong danh sách sẽ là các số nguyên lớn hơn 0. Nếu đó là một siêu mảng, bạn phải in It's a super array!
Nếu nó là một siêu Duper mảng, bạn phải in It's a super duper array!
Nó cũng có thể cho một mảng là duper- không siêu Ví dụ: {1, 2, 3}
Trong trường hợp này, bạn nên in It's a duper array!
Nếu mảng không phải là siêu cũng không phải là bộ đôi, bạn có thể in một giá trị giả.
Như thường lệ, đây là mã golf, vì vậy các sơ hở tiêu chuẩn được áp dụng và câu trả lời ngắn nhất tính theo byte sẽ thắng.
{1, 2, 3}
mảng?
2 * 1
bình đẳng 3
trong đầu.
super[space][space]array
được phép.