C ++中的水罐问题
我们可以做以下几项操作-
将水罐中的水全部倒满。
清空所有的水罐。
将一个水壶中的水倒入另一个水壶中,直到另一个水壶完全装满,或者第一个水壶本身是空的。
因此,如果x=2且y=5且z=4,则它将返回true。
为了解决这个问题,我们将遵循以下步骤-
如果x+y<z,则返回false
如果x=z或y=z或x+y=z,则返回true
返回truez可被x和y的gcd整除,否则返回false
范例(C++)
让我们看下面的实现以更好地理解-
#include <bits/stdc++.h&g; using namespace std; class Solution { public: bool canMeasureWater(int x, int y, int z) { if(x + y < z) return false; if(x == z || y == z || x + y == z) return true; return z % __gcd(x, y) == 0; } }; main(){ Solution ob; cout << (ob.canMeasureWater(3,5,4)); }
输入项
3 5 4
输出结果
1