编程实现求解最大公约数的欧几里德算法,用户输入两个任意正整数,程序输出他们的最大公约数。算法如下:
拆解步骤如下:
步骤1: 如果p < q,则交换p和q。
步骤2: 令r是p / q 的余数。
步骤3: 如果r = 0,则令g = q并终止;
否则令p = q, q = r并转向步骤2
#include<iostream>
#include<stdio.h>
//编程实现求解最大公约数的欧几里德算法,用户输入两个任意正整数,程序输出他们的最大公约数。算法如下:
//步骤1: 如果p < q,则交换p和q。
// 步骤2: 令r是p / q 的余数。
//步骤3: 如果r = 0,则令g = q并终止;
//否则令p = q, q = r并转向步骤2
using namespace std;
int main()
{
int a, b,temp;
cin >> a >> b;
if (a < b) {
temp = b; b = a; a = temp;//基本的交换实现
}
int r;
r = a % b;
while (r != 0) {
a = b;
b = r;
r = a % b;
}
int g;
g = b;
cout << g;
}