LeetCode ---- Fizz Buzz (Java/Lua 实现)

来源:互联网 发布:淘宝儿童玩具警车视频 编辑:程序博客网 时间:2024/06/07 11:16
题目:

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


1 0