js求最大公约数的两种方法

Posted kongming123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js求最大公约数的两种方法相关的知识,希望对你有一定的参考价值。

  1.辗转相除法

function commonDivisor1(num1,num2) {
if ((num1-num2) < 0) {
var k = num1;
num1 = num2;
num2 = k;
}
while (num2 !=0) {
var remainder = num1%num2;
num1 = num2;
num2 = remainder;
}
return num1;
}

2.更相减损法

function commonDivisor2(num1,num2) {
var index=0;
while (num1%2==0 && num2%2 ==0) {
num1 = num1/2;
num2 = num2/2;
index += 1;
}
if ((num1-num2) < 0) {
var k = num1;
num1 = num2;
num2 = k;
}
var cha = num1-num2;
while (cha != num2) {

if (cha -num2>0) {
num1 = cha;

} else {
num1 = num2;
num2 = cha;
}
cha = num1-num2;
}
if (index == 0) {
return cha;
} else {
return cha*index*2;
}

}

 

以上是关于js求最大公约数的两种方法的主要内容,如果未能解决你的问题,请参考以下文章

mysql 分组总和求最大值 的两种方式

求最大公约数(GCD)的两种算法

求一个int型整数的两种递减数之和(java)--2015华为机试题

最大连续子段和的两种线性算法

最大连续子段和的两种线性算法

求JAVA的两整数输出最大最小值以及两个数的和差积商的程序