Files
codekata-golang/26_reciprocal_cycles/main.go
2020-10-26 11:13:58 +08:00

35 lines
387 B
Go

package main
import "fmt"
func main() {
max := 0
d := 1
for d < 1000 {
n := findCycleLengthOfOneNth(d)
if n > max {
max = d
}
d++
}
fmt.Println("max:", max)
}
func findCycleLengthOfOneNth(n int) int {
m := map[int]int{}
a := 1
t := 0
for {
if _, ok := m[a]; ok {
break
}
m[a] = t
a = a % n * 10
if a == 0 {
return t
}
t++
}
return t - m[a]
}