在给定范围内找到一个不同的对(x,y),以便x在C ++中将y分开
在这里,我们将看到一个有趣的问题,我们将找到一个对(x,y),其中x和y在范围内,因此l<=x,y<=r,该对将具有一个属性,x的值除以y。如果有多对可用,则仅选择一对。
如果我们获得下限l和2l的值,则可以在O(1)时间内解决此问题。我们知道y/x的最小值可以是2,并且如果该范围内存在更大的值,则2将会在范围内。如果我们增加x,它也会增加2x,因此l和2l将是落入给定范围内的最小对。
示例
#include<iostream> using namespace std; void getPair(int l, int r) { int x = l; int y = 2 * l; cout << "(" << x << ", " << y << ")" << endl; } int main() { int l = 3, r = 6; getPair(l, r); }
输出结果
(3, 6)