LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: soloforce

[算法]求最大公约数:二进制欧几里德算法(Binary Euclid's Algorithm)

[复制链接]
发表于 2007-5-27 22:06:22 | 显示全部楼层
辗转相除,正确
回复 支持 反对

使用道具 举报

发表于 2007-5-29 09:21:56 | 显示全部楼层
递归的辗转相除精炼归精炼,效率可就低死了。除法这种东西可是大害。

特别是当两个数非常大的时候,只有加减和移位的二进制欧几里德算法的速度会非常好。
回复 支持 反对

使用道具 举报

发表于 2007-5-31 14:19:17 | 显示全部楼层
be useful in Crypthography...but fix the type of integer first
回复 支持 反对

使用道具 举报

发表于 2007-12-18 00:24:56 | 显示全部楼层

看我的代码



  1. int gcd(int a, int b) //最大公约数
  2. {
  3. while(a && b && a!=b)
  4. { a>b ? a = a%b : b = b % a; }
  5. return a;
  6. }

复制代码




http://www.liulantao.com/blogs/lltaichi/2007/11/c_06.html
回复 支持 反对

使用道具 举报

发表于 2007-12-24 07:23:47 | 显示全部楼层
...ls的有bug,a=4,b=2算出来是0吧
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表