天天看點

lintcode-簡單- Fizz Buzz 問題

給你一個整數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"
]
           

思考:這裡其實可以用stringbuilder的追加方法傳回字元串,但是lintcode要求傳回一個ArrayList,是以就就直接用ArrayList<String>的對象傳回。 這裡注意以下判斷順序,先判斷是否能被15整除,再判斷能被5正穿,最後判斷能否被3整除

AC代碼:

class Solution {
    /**
     * param n: As description.
     * return: A list of strings.
     */
    public ArrayList<String> fizzBuzz(int n) {
        ArrayList<String> results = new ArrayList<String>();
        for (int i = 1; i <= n; i++) {
            if (i % 15 == 0) {
                results.add("fizz buzz");
            } else if (i % 5 == 0) {
                results.add("buzz");
            } else if (i % 3 == 0) {
                results.add("fizz");
            } else {
                results.add(String.valueOf(i));
            }
        }
        return results;
    }

}
           

繼續閱讀