您的位置:首页 > 其它

最大公约数----欧几里德算法

2012-09-03 15:07 274 查看
        在书上看到一个求解最大公约数的算法。代码如下:

unsigned int  gcd(unsigned int M , unsigned int N)

{

          unsigned int tmp;

           if(N > M)

           { 

                     tmp = M;

                     M = N;

                     N = tmp;

           }

           while (N > 0)

           { 

                     tmp = M % N;

                     M = N;

                     N = tmp;  

           }

            return M;

}

因为余数tmp最多是M的一半,所以迭代的次数为logM,

所以算法的时间复杂度为O(logN),是一种高效的算法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  算法