412. Fizz Buzz
难度简单
写一个程序,输出从 1 到 n 数字的字符串表示。
-
如果 n 是3的倍数,输出“Fizz”;
-
如果 n 是5的倍数,输出“Buzz”
-
如果 n 同时是3和5的倍数,输出 “FizzBuzz”。
示例:
n = 15,
返回:
[
"1",
"2",
"Fizz",
"4",
"Buzz",
"Fizz",
"7",
"8",
"Fizz",
"Buzz",
"11",
"Fizz",
"13",
"14",
"FizzBuzz"
]
分析
方法一: 模拟法
思路
就像你每次玩 FizzBuzz 那样,你只需要判断这个数是能被 3
整除? 还是能被 5
整除? 或者是都能被整除。
算法
- 初始化一个空的答案列表。
- 遍历 1 … N。
- 对于每个数,判断它能不能同时被 3 和 5 整除,如果可以就把 FizzBuzz 加入答案列表。
- 如果不行,判断它能不能被 3 整除,如果可以,把 Fizz 加入答案列表。
- 如果还是不行,判断它能不能被 5 整除,如果可以,把 Buzz 加入答案列表。
- 如果以上都不行,把这个数加入答案列表。
class Solution {
public List<String> fizzBuzz(int n) {
// ans list
List<String> ans = new ArrayList<String>();
for (int num = 1; num <= n; num++) {
boolean divisibleBy3 = (num % 3 == 0);
boolean divisibleBy5 = (num % 5 == 0);
if (divisibleBy3 && divisibleBy5)