在最近在PPCG上发布了许多(两个?)与FizzBuzz相关的挑战之后,我很想提出自己的挑战。看...
嘶嘶声光年
编写一个程序或函数,该程序或函数需要一个整数,n并打印出FizzBuzz可以被15整除的Fizz任何数字,可以被3整除的Buzz任何数字以及可以被5整除的任何数字,直到(包括)n。所有输出i必须在换行符之后。但是有一个转折!
对于您的第三次打印Buzz,Buzz Lightyear最终会注意您的呼叫,并在程序中崩溃。然后,他介绍了自己-但是由于崩溃着陆,他说的一些话与程序的输出混杂在一起:
Buzz Lightyear, Space Ranger, Universe Protection Unit.
FizzBuzz Lightyear, Space Ranger, Universe Protection Unit.
(也就是说,仅附加 Lightyear, Space Ranger, Universe Protection Unit.到Buzz或FizzBuzz-否则将显示其他内容。请注意前导空格)
然而,巴斯光年,是太空游侠他,有很敏锐的听力,所以印刷FizzBuzz将会对你的计Buzz计数。
然后,Buzz到处徘徊,以保护您的计算机免受所有有害输出的攻击,直到您击中另一个可被5整除的数字(或15,因为这些数字也可被5整除)。这意味着直到必须再次打印Buzz(或FizzBuzz),您才完全不打印任何内容。
当您最终达到该条件时,Buzz就会离开:
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(这是挑战首次偏离标准Fizzbuzz的时间)
当“ Buzz计数器”(同时计数Buzz和FizzBuzz)达到3 时,Buzz向您问好;他在下一个Buzz(再次包含Buzz和FizzBuzz)打印时离开。
他离开的人数不会计入下一个“蜂鸣器”;您应该改为Buzz从0 开始重新计数es。例如,以n = 25(示例输出)运行的程序应以“蜂鸣计数器”结尾1,因为这Buzz是自上次离开以来打印的次数。
如果n介于Buzz的一次到达和他的一次离开之间(例如,他仍在那儿-您什么都没打印),则可以正常终止。因此,输出的最后一行是他的介绍
禁止出现标准漏洞。
nBuzz Lightyear到达与离开之间的预期行为吗?