LeetCode ---- Fizz Buzz (Java/Lua 實現)

題目:

Write a program that outputs the string representation of numbers from 1 to n.

But for multiples of three it should output “Fizz” instead of the number and for the multiples of five output “Buzz”. For numbers which are multiples of both three and five output “FizzBuzz”.

Example:

n = 15,

Return:
[
    "1",
    "2",
    "Fizz",
    "4",
    "Buzz",
    "Fizz",
    "7",
    "8",
    "Fizz",
    "Buzz",
    "11",
    "Fizz",
    "13",
    "14",
    "FizzBuzz"
]

簡單翻譯:輸入一個數字,輸出要求數組。要求如下:如果該數值是 3 的倍數,則輸出 “Fizz”,如果是 5 的倍數,則輸出 “Buzz”,如果既是 3 的倍數又是 5 的倍數則輸出“FizzBuzz”。


Java 實現代碼:

public static List<String> fizzBuzz(int n) {
    List<String> result = new ArrayList<>(n);

    for (int i = 1; i <= n; i++) {
        if (i % 3 == 0 && i % 5 == 0) {
            result.add("FizzBuzz");
        } else {
            if (i % 3 == 0)
                result.add("Fizz");
            else if (i % 5 == 0)
                result.add("Buzz");
            else
                result.add(i + "");
        }

    }
    return result;
}


Lua 代碼實現:

 function fizzBuzz(n)
     assert(type(n) == "number", "n is not a number")
     result = {}
     for i=1, n do
         if (i % 3 == 0 and i % 5 == 0) then
             result[i] = "FizzBuzz"
         elseif(i % 3 == 0) then
             result[i] = "Fizz"
         elseif(i % 5 == 0) then
             result[i] = "Buzz"
         else
             result[i] = i .. ""
         end

     end

     return result
 end

 result = fizzBuzz(15)

 for k,v in pairs(result) do
     print(k .. " = " .. v)
 end


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章