diff --git a/solutions/go/raindrops/3/raindrops.go b/solutions/go/raindrops/3/raindrops.go new file mode 100644 index 0000000..59b8ebd --- /dev/null +++ b/solutions/go/raindrops/3/raindrops.go @@ -0,0 +1,32 @@ +package raindrops + +import ( + "strconv" + "strings" + ) + +func Convert(number int) string { + var sb strings.Builder + + type pairs struct { + divisor int + word string + } + + rules:= []pairs{ + {3, "Pling"}, + {5, "Plang"}, + {7, "Plong"}, + } + + for _, n := range rules { + if number % n.divisor == 0 { + sb.WriteString(n.word) + } + } + + if sb.Len() == 0 { + return strconv.Itoa(number) + } + return sb.String() +} \ No newline at end of file