码迷,mamicode.com
首页 > 其他好文 > 详细

最大公约数 2.7

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

标签:

两种方法,一种是辗转想减法,可以对辗转相除法中对大数求模而造成的性能瓶颈进行避免

? ?

但不能避免这种情况 100000000,1

? ?

第二种用判断奇数偶数,将2的公因子提出来,分为四种情况,xy均为偶数

? ?

xy其中一个为偶数

? ?

xy均为奇数,那么x-y就为偶数了

? ?

package gcd_2_7;

? ?

public class Gcd_2_7 {

static int gcd(int x,int y){

if (x<y) {

return gcd(y, x);

}

if (y==0) {

return x;

}else {

return gcd(x-y, y);

}

}

static int gcd2(int x,int y){

if (x<y) {

return gcd2(y, x);

}

if (y==0) {

return x;

}else {

if (x%2==0) {

if (y%2==0) {

return (2*gcd2(x/2, y/2));

}

else {

return gcd2(x/2, y);

}

}else {

if (y%2==0) {

return gcd2(x, y/2);

}else {

return gcd2(x-y, y);

}

}

}

}

public static void main(String[] args) {

// TODO Auto-generated method stub

System.out.println(gcd2(6, 8));

}

? ?

}

最大公约数 2.7

标签:

原文地址:http://www.cnblogs.com/keedor/p/4409635.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!