算法描述
给你一个整数n. 从 1 到 n 按照下面的规则打印每个数:
- 如果这个数被3整除,打印
fizz
. - 如果这个数被5整除,打印
buzz
. - 如果这个数能同时被
3
和5
整除,打印fizz buzz
. - 如果这个数既不能被
3
整除也不能被5
整除,打印数字本身。
挑战
你是否可以只用一个 if
来实现?
思路:一个if肯定解决不了多个判断的问题,由于三目运算符具有if...else的特性,所以这里可以借助三目运算符来实现。
用Java实现,代码如下:
public class Solution {
/**
* @param n: An integer
* @return: A list of strings.
*/
public List<String> fizzBuzz(int n) {
List<String> list = new ArrayList<>();
for (int i = 1; i <= n; i++) {
list.add(i % 15 == 0 ? "fizz buzz" : (i % 3 == 0 ? "fizz" : (i % 5 == 0 ? "buzz" : "" + i)));
}
return list;
}
}