go 语言实践:欧几里得算法-求最大公约数
文章目录
go语言实现欧几里得算法
求2个数的最大公约数
辗转相除法
- 大数对小数求余
- 余数不为零时,小数对余数求余
- 余数为零时,小数就是俩个数的最大公约数
package main
import "fmt"
func divisor(min, max int) (maxDivisor int) {
//用大数对小数取余
complement := max % min
//余数不为零,小数作为大数,将余数作为小数,大数对小数递归求余
if complement != 0 {
maxDivisor = divisor(complement, min)
} else {
//当余数为零,小数就是最大公约数
maxDivisor = min
}
return
}
func main() {
fmt.Println(divisor(64, 192))
}
结果:
64