Golang:
思路:水壶问题,知识点其实是辗转相除法
代码如下:
func canMeasureWater(x int, y int, z int) bool {
if z==0{
return true
}
if z>x+y{
return false
}
temp:=getGreatestCommonDivisor(x,y)
if z%temp==0{
return true
}
return false
}
func getGreatestCommonDivisor(x,y int)int{
if x>y{
x,y=y,x
}
var rem int
for y>0 {
rem=x%y
x=y
y=rem
}
return x
}
有疑问加站长微信联系(非本文作者)