在 C++ 中找到给定范围内的一个不同的数对 (x, y),使得 x 整除 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)

更新于: 2019-10-24

87 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告