欧几里德算法求最大公约数 - Ruby
2017-06-07 17:04
225 查看
欧几里德算法又称辗转相除法,用于计算两个整数m, n的最大公约数。
其计算原理依赖于下面的定理:
这个定理的意思是:整数m、n的最大公约数等于n和m除以n的余数的最大公约数。
其计算原理依赖于下面的定理:
gcd(m, n) = gcd(n, m mod n)
这个定理的意思是:整数m、n的最大公约数等于n和m除以n的余数的最大公约数。
# author: jtusta # contact: root@jtahstu.com # site: http://www.jtahstu.com # software: RubyMine # time: 2017/6/7 14:44 class Gcd # 循环写法,即非递归写法 def gcd(m, n) while n>0 m, n = n, m % n end return m end # 递归写法 def gcd_2(m,n) return n==0?m:self.gcd_2(n,m%n) end end c = Gcd.new res = c.gcd(8,12) puts res rec = c.gcd_2(32,24) p rec
相关文章推荐
- 欧几里德算法(最大公约数)
- 求2个数的最大公约数--欧几里德算法
- 最大公约数与欧几里德算法
- 最大公约数算法——欧几里德算法
- 欧几里德算法 -- 求最大公约数
- 最大公约数与欧几里德算法
- 欧几里德算法(最大公约数)
- 算法初步学习一 欧几里德算法(最大公约数)
- C语言辗转相除法(欧几里德算法)求最大公约数
- 求最大公约数-辗转相除法-欧几里德算法
- 趣味分数-辗转相除 (欧几里德算法) 递归算法 求最大公约数-java
- Java实例15 - 求最大公约数 gcd 辗转相除 欧几里德算法
- 欧几里德算法求最大公约数
- 欧几里德算法(辗转相除法)计算两个整数的最大公约数
- 求两个整数最大公约数的欧几里德算法和求幂运算程序
- 欧几里德算法(辗转相除法) 求最大公约数
- 求最大公约数:欧几里德算法(即 辗转相除法 )
- 欧几里德算法求最大公约数
- 欧几里德算法求最大公约数
- 欧几里德算法求解最大公约数