365の質問ケトル
2リットルの容量があり、xとyリットルのケトルと水の無制限です。これら二つのやかんを使用することにより、zは正確リットルの水を得ることが可能かどうかを判断してください?
水の場合はZリットル、最後の2以上が満開に行われたケトルを使用してください。
あなたの許可を得て:
任意で満たされたボトル
空のケトルは、任意の
充填又は空になるまでさらにケトルにボトルから水を注ぐ
例1:(有名な「ダイからハード」の例)
入力:X = 3、Y = 5 、Z = 4
出力:真
例2:
入力:X = 2、Y = 6 、Z = 5
出力:偽
PS:
もしAがZ = X + B Y(A、B平坦化)、Gの最大公約数としてxとy、zは、すなわちZ%、G = 0、Gの整数倍でなければなりません!!
class Solution {
public boolean canMeasureWater(int x, int y, int z) {
return z == 0 || (x + y >= z && z % gcd(x, y) == 0);
}
int gcd(int x, int y) {
return y == 0 ? x : gcd(y, x % y);
}
}