给定一个整数 n,对于每一个满足 i <= n 的正整数 i,我们的任务是打印:
- 如果 i 能被 3 和 5 整除,则打印 "FizzBuzz";
- 如果 i 能被 3 整除,则打印 "Fizz";
- 如果 i 能被 5 整除,则打印 "Buzz";
- 如果以上条件都不满足,则将 i 作为字符串打印。
示例:
> 输入: n = 3
> 输出: ["1", "2", "Fizz"]
>
> 输入: n = 10
> 输出: ["1", "2", "Fizz", "4", "Buzz", "Fizz", "7", "8", "Fizz", "Buzz"]
>
> 输入: n = 20
> 输出: ["1", "2", "Fizz", "4", "Buzz", "Fizz", "7", "8", "Fizz", "Buzz", "11", "Fizz", "13", "14", "FizzBuzz", "16", "17", "Fizz", "19", "Buzz"]
在练习平台试一试!
目录
- [朴素方法] 逐个检查每个整数
- [更优方法] 通过字符串拼接
- [推荐方法] 使用哈希表或字典
[朴素方法] 逐个检查每个整数
解决这个问题一个非常简单的方法是,我们可以从 1 到 n 开始检查每一个数字,看它是否能被 3、5 或者 同时被两者 整除。根据可除性的情况:
- 如果一个数字能同时被 3 和 5 整除,我们将 "FizzBuzz" 添加到 result 中。
- 如果它仅能被 3 整除,我们将 "Fizz" 添加到 result 中。
- 如果它仅能被 5 整除,我们将 "Buzz" 添加到 result 中。
- 否则,我们将数字本身添加到 result 中。
C++
CODEBLOCK_d2627cac
C
CODEBLOCK_3fe22f1f
Java
CODEBLOCK_cbb04971
Python
CODEBLOCK_b806666e