在C++中,找到在給定條件下變化後的最終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

更新時間: 2020年7月8日

73 次瀏覽

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.