fizz buzz

This commit is contained in:
VicRen
2020-09-30 08:23:31 +08:00
parent 5ed00d147d
commit 539745bd35
3 changed files with 81 additions and 0 deletions

5
fizzbuzz/README.md Normal file
View File

@@ -0,0 +1,5 @@
# FizzBuzz
写一个程序打印出从1到100的数字将其中3的倍数替换成“Fizz”5的倍数替换成“Buzz”。既能被3整除、又能被5整除的数则替换成“FizzBuzz”。
要求:每行代码都必须有单元测试覆盖。

View File

@@ -0,0 +1,51 @@
package main
import "testing"
func TestFizzBuzz(t *testing.T) {
tt := []struct {
name string
input int
want string
}{
{
"case 1",
1,
"",
},
{
"case 3",
3,
"Fizz",
},
{
"case 5",
5,
"Buzz",
},
{
"case 6",
6,
"Fizz",
},
{
"case 10",
10,
"Buzz",
},
{
"case 15",
15,
"FizzBuzz",
},
}
for _, tc := range tt {
t.Run(tc.name, func(t *testing.T) {
got := FizzBuzz(tc.input)
if got != tc.want {
t.Errorf("FizzBuzz(%d)=%s, want %s", tc.input, got, tc.want)
}
})
}
}

25
fizzbuzz/main.go Normal file
View File

@@ -0,0 +1,25 @@
package main
import "fmt"
func main() {
for i := 1; i <= 100; i++ {
fb := FizzBuzz(i)
if fb == "" {
fmt.Println(i)
continue
}
fmt.Println(fb)
}
}
func FizzBuzz(n int) string {
if n%3 == 0 && n%5 == 0 {
return "FizzBuzz"
} else if n%3 == 0 {
return "Fizz"
} else if n%5 == 0 {
return "Buzz"
}
return ""
}