在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
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP