辗转相减法:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a, b;
printf("请输入要求公约数的两个数:");
scanf("%d %d",&a,&b);
if (a < b)
{
a = a^b;
b = a^b;
a = a^b;
}
while ( (a-b) > b)
{
a = a - b;
}
while ( (a-b) != 0 )
{
int temp = a - b;
a = b;
b = temp;
if (a < b)
{
a = a^b;
b = a^b;
a = a^b;
}
}
printf("最大公约数为:%d\n",b);
system("pause");
return 0;
}
辗转相除法:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a, b;
printf("请输入要求公约数的两个数:");
scanf("%d %d",&a,&b);
if (a < b)
{
a = a^b;
b = a^b;
a = a^b;
}
while (a%b != 0)
{
int temp = a%b;
a = b;
b = temp;
}
printf("最大公约数为:%d\n",b);
system("pause");
return 0;
}
本文介绍了使用辗转相减法和辗转相除法两种算法来求解两个整数的最大公约数。通过C语言实现,详细展示了算法的具体步骤,并提供了完整的源代码供读者学习和参考。
9万+

被折叠的 条评论
为什么被折叠?



