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

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

Luz2年前 (2022-08-17)题库299
两个正整数的最大公约数(Greatest Common Divisor)是指两个正整数的公有约数中最大的一个。即如果GCD(x,y) = k,则k是能同时整除x和y的最大除数。

欧几里德(Euclidean)在《几何原本》中描述了一种求解最大公约数的快速算法,即辗转相除法。其数学表达式为:

GCD(x,y) = GCD(y, x % y ) 设x >= y



<img src="https://images.ptausercontent.com/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;
}






答案:
第1空:x = y

第2空:x % y

第3空:break

第4空:y = r

发表评论

访客

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