在C++程式設計中,在給定條件下改變X和Y後,求最終的X和Y值
假設我們有兩個正整數X和Y的初始值。找到X和Y的最終值,其改變方式如下:
- 步驟1 - 如果X = 0且Y = 0,則終止過程,否則轉到步驟2
- 步驟2 - 如果X >= 2Y,則設定X = X – 2Y,然後轉到步驟1,否則轉到步驟3
- 步驟3 - 如果Y >= 2X,則設定Y = Y – 2X,然後轉到步驟1,否則結束過程。
數字X和Y的範圍在[0和1018]之間,因此我們可以使用暴力破解法。
示例
#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); }
輸出
X: 0 Y: 1
廣告