# LeetCode 算法題 – Fizz Buzz

• 如果數字是3的倍數，則輸出Fizz
• 如果數字是5的倍數，則輸出Buzz
• 如果數字是35的倍數，則輸出FizzBuzz

## 原題

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"
]
``````

## 實現

### 實現一

`````` 1func fizzBuzz(n int) []string {
2    ret := make([]string, n)
3
4    for i := 1; i <= n; i++ {
5        if i%15 == 0 {
6            ret[i-1] = "FizzBuzz"
7        } else if i%5 == 0 {
8            ret[i-1] = "Buzz"
9        } else if i%3 == 0 {
10            ret[i-1] = "Fizz"
11        } else {
12            ret[i-1] = strconv.Itoa(i)
13        }
14    }
15
16    return ret
17}
``````

### 實現二

`````` 1func fizzBuzz(n int) []string {
2    ret := make([]string, n)
3    three := 3
4    five := 5
5    fifteen := 15
6
7    for i := 1; i <= n; i++ {
8        if i == fifteen {
9            ret[i-1] = "FizzBuzz"
10            fifteen += 15
11            five += 5
12            three += 3
13        } else if i == five {
14            ret[i-1] = "Buzz"
15            five += 5
16        } else if i == three {
17            ret[i-1] = "Fizz"
18            three += 3
19        } else {
20            ret[i-1] = strconv.Itoa(i)
21        }
22    }
23
24    return ret
25}
``````

2024年8月29日 星期四 2019年3月2日 星期六