首先 我们举例明确辗转相除法如何操作
例、用辗转相除法求1997和615的最大公约数
发现,每个式子的余数都将作为下个式子的除数
,每个式子的除数
都将作为下个式子的被除数
,直到所列式子的余数为
,下个式子将不再计算,且最大公约数是最后一个式子的除数,也被赋给了下个式子的被除数。
所以代码如下
#include<iostream>
using namespace std;
int main()
{
int a,b;
cin >> a >> b;
if(a<b)//先使被除数大于除数
{
int t = a;
a = b;
b = t;
}
while(b)//结束条件为余数等于0,即下次循环的b等于0
{
int i = a%b;
a = b;//每个式子的除数都将作为下个式子的被除数
b = i;//每个式子的余数都将作为下个式子的除数
}
cout << a;//最大公约数是最后一个式子的除数,也被赋给了下个式子的被除数。
}