在 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)
广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP