Trò chơi Sevens được chơi như sau: n
người chơi ngồi thành một vòng tròn và bắt đầu đếm từ 1, chuyển sang bên trái (hoặc từ người chơi A
sang người chơi B
).
Khi một số p
mà có một 7
trong nó OR là chia hết cho 7
được đạt tới, thì cầu thủ bị nói số lượng p-1
, sau khi cầu thủ tiếp theo nói p
, phải nói p+1
và thứ tự của người nói đảo ngược. Ví dụ: nếu người chơi B
nói 6
, người chơi C
nói 7
, B
nói 8
và người chơi A
nói 9
.
Lưu ý: Đối với những người muốn chơi trong đời thực, nếu một người quên một số (hoặc trong phiên bản sevens
không được nói, vô tình nói a seven
), họ sẽ bị loại khỏi vòng tròn, nhưng chúng tôi sẽ bỏ qua chi tiết này từ thử thách này.
Thách thức chính là in số mà mỗi người chơi nên nói trong một trò chơi Sevens hoàn hảo cho đến đầu vào m
cho n
người chơi đầu vào .
Như một ví dụ, nơi năm người, A
, B
, C
, D
, và E
, là để chơi cho đến khi họ đạt được 30
. Họ chơi theo cách này
A: 1 6 8 13 15 19 23 30
B: 2 7* 12 16 18 24
C: 3 11 17* 25
D: 4 10 21* 26 28*
E: 5 9 14* 20 22 27*29
nơi sevens
được đánh dấu bằng *
. Lưu ý rằng tại 27
và 28
, chúng tôi đảo ngược hai lần và chơi tiếp tục "như bình thường" từ D
đến E
.
Xin lưu ý rằng đầu ra không phải ở định dạng trên. Tôi chỉ đơn giản là in nó theo cách đó cho rõ ràng.
Quy tắc
Đầu vào là hai số nguyên theo bất kỳ thứ tự nào,
m
đại diện cho số cuối cùng để nói,n
đại diện cho số lượng người chơi.Đầu ra có thể là một vài mảng hoặc một vài chuỗi, một chuỗi cho mỗi người chơi. Nếu bạn sử dụng chuỗi, bạn không phải sử dụng dấu phân cách (tuy nhiên, nếu bạn có thể thêm một số trong kiểm tra mã của mình, chúng tôi sẽ đánh giá cao khả năng đọc). Nếu bạn thực sự có thể in chúng trong một vòng tròn bằng cách nào đó, điều đó cũng được chấp nhận và nó cũng sẽ rất tuyệt.
Đầu ra không phải chỉ định người chơi nào (rõ ràng người chơi đầu tiên là người nói
1
), mặc dù nếu đầu ra không được sắp xếp vì bất kỳ lý do gì, bạn nên làm rõ người chơi nào đang nói bộ số nào . Bỏ qua những người chơi không nói gì cũng được cho phép nếu bạn nói rõ người chơi nào đang nói. Tôi sẽ thêm một số ví dụ về các đầu ra có thể dưới đây.Đây là mã golf, vì vậy số byte nhỏ nhất sẽ thắng.
Như mọi khi, nếu vấn đề không rõ ràng, xin vui lòng cho tôi biết. Chúc may mắn và chơi golf tốt!
Ví dụ
>>> sevens_string(30, 5, " ")
'1 6 8 13 15 19 23 30'
'2 7 12 16 18 24'
'3 11 17 25'
'4 10 21 26 28'
'5 9 14 20 22 27 29'
>>> sevens_string(42, 5)
'16813151923303539'
'27121618243140'
'31117253241'
'410212628333742'
'591420222729343638'
>>> sevens_array(20, 3)
[1, 4, 7, 10, 13, 15, 19]
[2, 5, 9, 12, 16, 18]
[3, 6, 8, 11, 14, 17, 20]
>>> sevens_array(18, 10)
[1, 13, 15]
[2, 12, 16, 18]
[3, 11, 17]
[4, 10]
[5, 9]
[6, 8]
[7]
[]
[]
[14]
1 2 3 4 1 2 3 2 1 4 3 2 1 4 1
.) Tôi sẽ không nói điều đó tốt hơn hay tệ hơn về mặt thách thức của anh ta: chỉ là nó sẽ hữu ích hơn trong thế giới thực.