Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Tìm cặp phân biệt (x, y) trong khoảng cho x chia hết y C++

Cho khoảng [l, r], tìm cặp (x, y) với l ≤ x, y ≤ r sao cho x chia hết y. Nếu có nhiều cặp, chỉ cần trả về một cặp.

Giải thuật

Giải O(1): Chọn x = l và y = 2*l. Vì tỷ số y/x nhỏ nhất là 2, và 2*l luôn nằm trong khoảng nếu l và 2*l đều ≤ r. Đây là cặp nhỏ nhất thỏa mãn.

Ví dụ minh họa

#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);
}

Kết quả

(3, 6)