LintCode 9.Fizz Buzz 问题(JAVA实现,一个if都不用)
描述
给你一个整数n. 从 1 到 n 按照下面的规则打印每个数:
- 如果这个数被3整除,打印fizz.
- 如果这个数被5整除,打印buzz.
- 如果这个数能同时被3和5整除,打印fizz buzz.
样例
比如 n = 15, 返回一个字符串数组:
[ "1", "2", "fizz", "4", "buzz", "fizz", "7", "8", "fizz", "buzz", "11", "fizz", "13", "14", "fizz buzz" ]
挑战
你是否可以只用一个 if
来实现?
实现
// 使用条件运算符加switch,一个if都没用。 public class Solution { /** * @param n: An integer * @return: A list of strings. */ public List<String> fizzBuzz(int n) { // write your code here List<String> list = new ArrayList(); for (int i = 1; i <= n; i++) { int s = i % 15 == 0 ? 3 : i % 5 == 0 ? 2 : i % 3 == 0 ? 1 : 4; switch (s) { case 1: list.add("fizz"); break; case 2: list.add("buzz"); break; case 3: list.add("fizz buzz"); break; default: list.add(i + ""); break; } } return list; } }