欧几里德算法:求两个非负整数u和v的最大公约数.
分析:当v不为0时,辗转用操作:r=u%v,u=v,v=r消去相同的因子.直到v=0时,u的值即为所求的解.
代码1:
#include<stdio.h>
int main()
{
int u,v,r;
while(scanf("%d%d",&u,&v)!=EOF)
{
while(v!=0)
{
r=u%v;
u=v;
v=r;
}
printf("%d\n",u);
}
return 0;
}代码2:
#include<stdio.h>
int gcd(int a,int b)
{
return b==0?a:gcd(b,a%b);
}
int main()
{
int a,b,c;
while(scanf("%d%d",&a,&b)!=EOF)
{
c=gcd(a,b);
printf("%d\n",c);
}
return 0;
}

本文详细介绍了欧几里得算法的基本原理及其在求解两个非负整数最大公约数过程中的高效实现。通过提供两种不同风格的代码示例,旨在帮助读者理解算法的工作流程并提升编程技能。
311

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



