세븐 즈 게임은 다음과 같이 진행됩니다. n
플레이어는 원 안에 앉아 1부터 카운트 업을 시작하여 왼쪽으로 (또는 플레이어 A
에서 플레이어로) 시작합니다.B
) 시작합니다.
안에있는 숫자 가 나눌 수 있는 숫자 p
에 도달하면, 다음 플레이어가 말한 후에 숫자를 말한 플레이어는 말 을해야 하고 사람들의 말 순서가 반대로됩니다. 예를 들어, 플레이어가 있다면 말 , 플레이어는 말한다 , 라고 , 그리고 플레이어는 말한다 .7
7
p-1
p
p+1
B
6
C
7
B
8
A
9
참고 : 실생활에서 게임을하고 싶은 사람은 숫자를 잊어 버린 경우 (또는 sevens
언급되지 않은 버전에서 실수로seven
) 서클에서 제거되지만이 도전에서이 세부 사항을 생략합니다.
도전 자체는 입력 m
에 대한 입력 까지 각 플레이어가 7의 완벽한 게임에서 말해야 할 숫자를 인쇄하는 것입니다n
플레이어 .
오명은, 예를 들어,로 A
, B
, C
, D
,과 E
, 그들이 도달 할 때까지 재생할 수 있습니다 30
. 그들은 이런 식으로 연주
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
로 sevens
표시되어 *
있습니다. at 27
및 28
에서 Google은 두 번 후진하며 게임은 "정상"에서에서 D
까지 계속 됩니다 E
.
출력 형식이 위 형식 일 필요는 없습니다. 나는 그것을 명확하게하기 위해 단순히 그런 식으로 인쇄했다.
규칙
입력은 순서에 관계없이 두 개의 정수이며
m
, 마지막으로 말할 숫자를n
나타내며 플레이어 수를 나타냅니다.출력은 각 플레이어마다 하나씩 여러 배열 또는 여러 문자열이 될 수 있습니다. 문자열을 사용하는 경우 구분 기호를 사용할 필요가 없습니다 (하지만 코드 테스트에 일부를 추가 할 수 있으면 가독성이 좋을 것입니다). 실제로 어떻게 든 원으로 인쇄 할 수 있다면 받아 들일 수 있으며 꽤 멋질 것입니다.
어떤 결과가 어떤 플레이어인지를 지정할 필요는 없습니다 (첫 번째
1
플레이어가 말하는 사람 임은 분명합니다). . 아무 말을하지 않는 선수를 생략하는 것도 어떤 선수가 말하는지 명확하게하는 경우 허용됩니다. 가능한 출력의 예를 아래에 추가하겠습니다.이것은 코드 골프이므로 가장 적은 수의 바이트가 이깁니다.
문제가 명확하지 않은 경우 언제든지 알려주십시오. 행운과 좋은 골프!
예
>>> 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
.) 나는 그가 도전하는면에서 더 나쁘다고 말하지는 않습니다. 단지 현실 세계에서 더 유용 할 것입니다.