数学-Fizz Buzz

写一个程序,输出从 1 到 n 数字的字符串表示。

  1. 如果 n 是3的倍数,输出“Fizz”;

  2. 如果 n 是5的倍数,输出“Buzz”;

3.如果 n 同时是3和5的倍数,输出 “FizzBuzz”。

示例:

n = 15,

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

很简单的一道数学题,技巧就在先判断是否同时是3和5的倍数

对于每个数,判断它能不能同时被 3 和 5 整除,如果可以就把答案加入答案数组res里面。
如果不行,判断它能不能被 3 整除,如果可以,把 Fizz 加入加入答案数组res里面。
如果还是不行,判断它能不能被 5 整除,如果可以,把 Buzz 加入加入答案数组res里面。
如果以上都不行,把这个数加入答案列表。

复杂度分析

  • 时间复杂度: O(N)
  • 空间复杂度: O(1)
func fizzBuzz(n int) []string {
    if n <= 0 {
        return []string{}
    }
    res := make([]string,n)
    for i:=0;i<n;i++ {
        res[i] = help(i+1)
    }
    return res
}

func help(a int) string {
    if a % 3 == 0 && a % 5 == 0 {
        return "FizzBuzz"
    } else if a % 3 == 0{
        return "Fizz"
    } else if  a % 5 == 0{
        return "Buzz"
    }
    
    return strconv.Itoa(a)
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。