0
点赞
收藏
分享

微信扫一扫

第11周OJ实践 求最大公约数和最小公倍数


法一 <辗转相除法>:

int gcd(int x,int y)
{
int r;
while(y>0)
{
r=x%y;
x=y;
y=r;
}
return x;
}

int lcm(int x,int y)
{
return ((x*y)/gcd(x,y));
}

 

法二<更相减损术>

int gcd(int a, int b)
{
while(a!=b)
{
if(a>b)
a=a-b;
if(b>a)
b=b-a;
}
return a;
}
int lcm(int a, int b)
{
return a*b/gcd(a,b);
}

知识点总结:所谓更相减损术,即是用较大的数减去较小的数,构成新的一对数,再用大的减去小的,直到两数相等,此时所得得数即为两个数的最大公约数。

 

举报

相关推荐

0 条评论