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

Chương trình C++ tìm X, Y cuối cùng khi thay đổi theo điều kiện

Cho hai số nguyên dương X, Y ban đầu. Tìm giá trị cuối cùng của X, Y sau các thay đổi:

  • Bước 1: Nếu X=0 và Y=0 thì dừng, ngược lại bước 2
  • Bước 2: Nếu X >= 2Y thì X = X - 2Y, quay lại bước 1, ngược lại bước 3
  • Bước 3: Nếu Y >= 2X thì Y = Y - 2X, quay lại bước 1, ngược lại kết thúc

X, Y trong khoảng [0, 10^18]. Dùng phương pháp brute force.

Ví dụ mã nguồn

#include <iostream>
using namespace std;

void alterNumber(long long x, long long y) {
    while (1) {
        if (x == 0 || y == 0)
            break;
        if (x >= 2 * y)
            x = x % (2 * y);
        else if (y >= 2 * x)
            y = y % (2 * x);
        else
            break;
    }
    cout << "X: " << x << "\n" << "Y: " << y;
}

int main() {
    long long x = 12, y = 5;
    alterNumber(x, y);
}

Kết quả đầu ra

X: 0
Y: 1