최근 PPCG에 게시 된 많은 (2?) FizzBuzz 관련 문제가 발생한 후, 나는 내 자신을 생각해 냈습니다. 보다...
피즈 버즈 라이트 이어
정수를 취하여 15 로 나눌 수있는 숫자, 3으로 나눌 수있는 숫자, 5로 나눌 수있는 숫자 (최대 포함)까지 n인쇄 하는 프로그램이나 함수를 작성하십시오 . 모두에 대한 출력 다음에 개행이 있어야합니다. 그러나 비틀기가 있습니다!FizzBuzzFizzBuzzni
을 인쇄 할 때마다 Buzz버즈 라이트 이어는 마침내 귀하의 프로그램에서 귀하의 전화 및 충돌 지역에주의를 기울입니다. 그런 다음 자신을 소개합니다. 그러나 충돌이 발생한 후, 그가 말한 것 중 일부가 프로그램의 출력과 혼합됩니다.
Buzz Lightyear, Space Ranger, Universe Protection Unit.
FizzBuzz Lightyear, Space Ranger, Universe Protection Unit.
(즉, 추가 전용입니다 Lightyear, Space Ranger, Universe Protection Unit.에 Buzz나 FizzBuzz- 당신이 그렇지 표시 한 것 무엇이든 선행 공백을합니다.)
그러나 우주 레인저 인 버즈 라이트 이어 (Buzz Lightyear)는 매우 예리한 청력을 가지고 있으므로 인쇄 FizzBuzz는 귀하의 Buzz수에 포함 됩니다.
그런 다음 버즈는 5로 나눌 수있는 또 다른 숫자 (또는 15도 나눌 수 있기 때문에 15)를 칠 때까지 모든 악의적 인 출력으로부터 컴퓨터를 보호하기 위해 매달립니다. 그 의미는 다시 인쇄해야 할 때까지 Buzz(또는 FizzBuzz) 아무 것도 인쇄하지 않는 것입니다.
마지막으로 해당 조건에 도달하면 버즈가 출발합니다.
To infinity and beyond!
출력 예
이것은 예상 출력된다 n = 25: (통지는 16 내지 19 스킵 방법)
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz Lightyear, Space Ranger, Universe Protection Unit.
To infinity and beyond!
Fizz
22
23
Fizz
Buzz
규칙
선택적인 후행 줄 바꿈이 허용됩니다.
이것은 코드 골프입니다. 따라서 가장 짧은 코드 (바이트)가 이깁니다.
주어진 n것이 유효 하고 15 이상 이라고 가정하십시오 (이는 도전이 표준 피즈 버즈에서 처음 벗어날 때입니다)
"버즈 카운터"( Buzz와 모두를 계산 FizzBuzz)가 3에 도달하면 버즈가 인사합니다 . 다음 Buzz( Buzz및 다시 포함 FizzBuzz)이 인쇄 되면 출발합니다 .
그가 떠난 숫자는 다음 "버즈 카운터"에 포함되지 않습니다. 대신 계산 시작해야 Buzz예를 들어, 프로그램이 실행 0부터 다시 말이지 n = 25그 얼마나 많은 시간 이후, (예를 들어, 출력) 1의 '버즈 카운터 "로 끝나야합니다 Buzz그가 떠난 마지막 시간 이후 인쇄되었습니다.
nBuzz의 도착 중 하나와 출발 중 하나 사이에 해당하는 경우 (즉, 아직 거기에 있습니다-당신은 아무것도 인쇄하지 않습니다), 우아한 종료가 예상됩니다. 따라서 마지막 출력 라인은 그의 소개입니다
표준 허점은 금지되어 있습니다.
n버즈 라이트 이어의 도착과 출발 사이에 있을 때 예상되는 동작을 명확하게 설명 할 수 있습니까 ?