昨天的工程导论 老师上课讲了求最大公约数的算法,今天我来将它在C++中实现一下
求最大公约数
这里使用的是辗转相除法
用while语句
#include<stdio.h>
int main()
{
int M;
int N;
int R = 1;
printf("请输入需要求最大公约数的两个数(用,分隔):");
scanf_s("%d,%d", &M, &N);
while (R != 0)
{
R = M % N;
M = N;
N = R;
}
printf("这两个数的最大公约数为:%d \n",M);
return 0;
}
输入12,21得
使用for语句
我们将while语句改成for语句也能达到相同效果
#include<stdio.h>
int main()
{
int M;
int N;
int R = 1;
printf("请输入需要求最大公约数的两个数(用,分隔):");
scanf_s("%d,%d", &M, &N);
for(; R != 0; )
{
R = M % N;
M = N;
N = R;
}
printf("这两个数的最大公约数为:%d \n",M);
return 0;
}
输入 32,24得: