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


发布了159 篇原创文章 · 获赞 350 · 访问量 55万+

猜你喜欢

转载自blog.csdn.net/wenniuwuren/article/details/52876671