首页 > 其他 > 详细

欧几里得求最大公约数和最小公倍数

时间:2015-12-15 21:09:23      阅读:157      评论:0      收藏:0      [点我收藏+]

欧几里得算法,据说是辗转相除法,然而我用的是更相减损术。。。

嗯,自己的代码如下:

//求最大公约数——欧几里得算法;最小公倍数—— 
#include<iostream>
using namespace std;
int main()
{
    int a,b,c,temp,A,B;
    while(cin>>a>>b)
    {
        A=a;B=b;
        if(a<b)
        {
            temp=a;
            a=b;
            b=temp;        
        }
        c=a-b;
        while(b!=c) 
        {
            if(b<c)
                a=c;        
            else
            {
                a=b;
                b=c;
            }
            c=a-b;        
        }
        cout<<c<<" "<<A/c*B<<endl;        
    }

    return 0;
}

 

都是高中学过了的,确实没什么难度,但是看到别人的代码后顿时整个人都不好了。。

 

#include <algorithm> // std::swap for c++ before c++11
#include <utility> // std::swap for c++ since c++11
int gcd(int a,int b)
{
    if (a < b)
        std::swap(a, b);
    return b == 0 ? a : gcd(b, a % b);
}

 

人家的递归,人家的函数调用,学习了。。。

 

欧几里得求最大公约数和最小公倍数

原文:http://www.cnblogs.com/fengyanlover/p/5049337.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!