-->
当前位置:首页 > 题库 > 正文内容

程序填空题:欧几里德法求最大公约数 - C/C++ 分支与循环

Luz2年前 (2022-09-06)题库601
两个正整数的最大公约数(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

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。