在 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 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告