gcd算法整合(最大公约数)
来源:互联网 发布:xfplay 怎么没有mac版 编辑:程序博客网 时间:2024/05/18 11:47
最大公约数指某几个整数共有因子中最大的一个。
关于最大公约数的算法有很多,我就写出目前我所知道的算法吧~
int gcd(int a,int b){while(a!=b){if(a>b)a-=b;elseb-=a;}return a;}/*可用数学归纳法证明*/辗转相除法(欧几里德算法)
int gcd(int a,int b){if(b==0)return a;return gcd(b,a%b);}//用递归做
int gcd(int a,int b){int c;while(b){c=a%b;a=b;b=c;}return a;}//用循环做
int gcd(int a,int b){while(b^=a^=b^=a%=b);//这样写是不正确的,因为这样写在不同的编译器上又可能结果不同return a;//这样写的格式是我从百度上看到的,思路和辗转相除一样,正确的完整写法看下面}
int gcd(int a,int b){while(b){a%=b;b^=a;//这样写就是上面的分部写法a^=b;//因为不这样写的话是会引起错误的,好像叫未定义行为b^=a;//而分部写的话就不会出现这种错误}return a;}
int gcd(int a,int b){//这是优化过的算法,是网上看到的,网址如下http://www.cppblog.com/CodePanada/archive/2011/05/19/146743.htmlif(a<b)return gcd(b,a);if(b==0)return a;if(a%2)//分成了奇偶两种情况{if(b%2)return gcd(b,a-b);elsereturn gcd(a,b>>1);}else{if(b%2)return gcd(a>>1,b);elsereturn 2*gcd(a>>1,b>>1);}}
0 0
- gcd算法整合(最大公约数)
- GCD算法(最大公约数算法)解析
- 算法学习---求最大公约数(Gcd算法)
- 最大公约数(GCD)的Euclid算法
- 1 gcd 最大公约数算法
- 求最大公约数gcd算法
- 最大公约数算法GCD
- 最大公约数-——Gcd算法
- 最大公约数(gcd):Euclid算法证明
- 欧几里得(Eculid)最大公约数(GCD)算法
- 最大公约数gcd算法及其扩展
- 求GCD(最大公约数)的算法
- 最大公约数(gcd):Euclid算法证明
- 求最大公约数(GCD)
- gcd() 最大公约数
- 求最大公约数(gcd)
- 最大公约数gcd()
- Gcd(最大公约数)
- Java多线程系列--“基础篇”09之 interrupt()和线程终止方式
- 新的互联网是什么样子?
- java 多线程
- Android中Yahoo天气预报API的使用
- 黑马程序员-传智播客资料中的面试题
- gcd算法整合(最大公约数)
- 浅谈外连接中的on条件字句
- 读老子,明智明理
- HTML4常用标签元素总结及简介
- Ubuntu搭建版本库svn与wensvn管理工具
- MongoDB2.6window系统下安装服务
- VC中坐标系的建立 逻辑坐标,物理坐标,设备坐标
- 斜率优化专题2——bzoj 1010 [HNOI2008]玩具装箱toy 题解
- dwr处理参数或返回值为pojo对象的JavaBean方法