Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 주어진 조건에서 변경될 때 최종 X 및 Y 찾기


양의 정수 X와 Y의 초기 값이 있다고 가정합니다. X와 Y의 최종 값을 찾으면 아래에 언급된 대로 약간의 변경이 있을 것입니다. −

  • 1단계 - X =0 및 Y =0이면 프로세스를 종료하고 그렇지 않으면 2단계로 이동

  • 2단계 - X>=2Y이면 X =X – 2Y로 설정하고 1단계로 이동하고 그렇지 않으면 3단계로 이동

  • step3 − 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