解题思路
此题其实就是一个数学题,求最大公约数的倍数。坑的话,就是0,0,0这组测试案例。其它没啥好说的直接上代码。
解题代码
public class Solution {
public boolean canMeasureWater(int x, int y, int z) {
int min=0,max=0;
if(x==0 || y==0){
if(z==y || z==x){
return true;
}else{
return false;
}
}
if(x>y){
max=x;min=y;
}else{
max=y;min=x;
}
int t = find(min,max);
if(z%t==0 && z<=(x+y)){
return true;
}else{
return false;
}
}
public static int find(int min,int max){
if(max%min == 0){
return min;
}
int i = min-1;
while(i>1){
if(max%i==0 && min%i==0){
return i;
}
i--;
}
return 1;
}
}