This commit is contained in:
VicRen
2020-12-16 09:15:15 +08:00
parent b0d252705a
commit 2e51db1b43
2 changed files with 94 additions and 0 deletions

31
20201216/main.go Normal file
View File

@@ -0,0 +1,31 @@
package main
import "fmt"
func main() {
}
func process(n int) []string {
m := make(map[string]struct{})
for i := 2; i <= n; i++ {
for j := 1; j < i; j++ {
g := findGCD(i, j)
m[fmt.Sprintf("%d/%d", j/g, i/g)] = struct{}{}
}
}
var ret []string
for k := range m {
ret = append(ret, k)
}
return ret
}
func findGCD(a, b int) int {
for a > 0 {
t := a
a = b % a
b = t
}
return b
}

63
20201216/main_test.go Normal file
View File

@@ -0,0 +1,63 @@
package main
import (
"reflect"
"sort"
"testing"
)
func Test_process(t *testing.T) {
type args struct {
n int
}
tests := []struct {
name string
args args
want []string
}{
{
"test1",
args{
n: 2,
},
[]string{"1/2"},
},
{
"test2",
args{
n: 3,
},
[]string{"1/2", "1/3", "2/3"},
},
{
"test3",
args{
n: 4,
},
[]string{"1/2", "1/3", "1/4", "2/3", "3/4"},
},
{
"test4",
args{
n: 1,
},
nil,
},
{
"test5",
args{
n: 9,
},
[]string{"1/2", "1/3", "1/4", "1/5", "1/6", "1/7", "1/8", "1/9", "2/3", "2/5", "2/7", "2/9", "3/4", "3/5", "3/7", "3/8", "4/5", "4/7", "4/9", "5/6", "5/7", "5/8", "5/9", "6/7", "7/8", "7/9", "8/9"},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
got := process(tt.args.n)
sort.Strings(got)
if !reflect.DeepEqual(got, tt.want) {
t.Errorf("process() = %v, want %v", got, tt.want)
}
})
}
}