153. FizzBuzz 问题
困难
FizzBuzz 问题是一个经典的编程面试题。任务很简单:
打印从 1
到 N
的整数,除了:
- 如果一个整数能被
3
整除,打印 ‘Fizz’; - 如果一个整数能被
5
整除,打印 ‘Buzz’; - 如果一个整数能同时被
3
和5
整除,打印 ‘FizzBuzz’。
例如,对于 N = 20
,输出应该是:
1, 2, Fizz, 4, Buzz, Fizz, 7, 8, Fizz, Buzz, 11, Fizz, 13, 14, FizzBuzz, 16, 17, Fizz, 19, Buzz
实现一个高级工具类型 FizzBuzz<N>
生成一个字符串字面量的数组,对于较大的 N
值,你需要确保任何生成的类型都能高效地完成(例如,通过正确使用尾调用优化来实现递归)。