程序填空题:欧几里德法求最大公约数 - C/C++ 分支与循环
两个正整数的最大公约数(Greatest Common Divisor)是指两个正整数的公有约数中最大的一个。即如果GCD(x,y) = k,则k是能同时整除x和y的最大除数。
欧几里德(Euclidean)在《几何原本》中描述了一种求解最大公约数的快速算法,即辗转相除法。其数学表达式为:
GCD(x,y) = GCD(y, x % y ) 设x >= y
![image.png](~/447fb32b-bcb6-468c-b32b-700ae63953e1.png)
请结合上述流程图,使用完成程序填空,将上机调试运行。
#include <iostream>
using namespace std;
int main()
{
int x = 0, y = 0;
cout << "Input x:";
cin >> x;
cout << "Input y:";
cin >> y;
if (x<y){
int t = x;
;
y = t;
}
while (true){
int r = ;
if (r==0)
;
x = y;
;
}
cout << "GCD(x,y) = " << y;
return 0;
}
### 感觉不会? 那试着听听**免费的B站网课**
[简洁的C和C++ - 重庆大学在线课程](https://www.bilibili.com/video/BV1it411d7zx/)
[Python编程基础及应用 - 重庆大学在线课程](https://www.bilibili.com/video/BV1kt411R7uW/)
![image.png](~/6e79c9e3-cb7f-486d-ab78-36b5a8f655c0.png)
答案:
第1空:x = y
第2空:x % y
第3空:break
第4空:y = r
欧几里德(Euclidean)在《几何原本》中描述了一种求解最大公约数的快速算法,即辗转相除法。其数学表达式为:
GCD(x,y) = GCD(y, x % y ) 设x >= y
![image.png](~/447fb32b-bcb6-468c-b32b-700ae63953e1.png)
请结合上述流程图,使用完成程序填空,将上机调试运行。
#include <iostream>
using namespace std;
int main()
{
int x = 0, y = 0;
cout << "Input x:";
cin >> x;
cout << "Input y:";
cin >> y;
if (x<y){
int t = x;
;
y = t;
}
while (true){
int r = ;
if (r==0)
;
x = y;
;
}
cout << "GCD(x,y) = " << y;
return 0;
}
### 感觉不会? 那试着听听**免费的B站网课**
[简洁的C和C++ - 重庆大学在线课程](https://www.bilibili.com/video/BV1it411d7zx/)
[Python编程基础及应用 - 重庆大学在线课程](https://www.bilibili.com/video/BV1kt411R7uW/)
![image.png](~/6e79c9e3-cb7f-486d-ab78-36b5a8f655c0.png)
答案:
第1空:x = y
第2空:x % y
第3空:break
第4空:y = r