思路就是先求得两正整数(m,n)的最大公因数x,
约分结果即为m/x ,n/x
公因数的求得思路为找到两数中较小一位,向下循环遍历得到一位最大正整数,使m和n同时对它取余结果为0
下面看下代码
//m,n为正整数的分子和分母
function reductionTo(m, n) {
var arr = [];
if (!isInteger(m) || !isInteger(n)) {
console.log('m和n必须为整数');
return;
} else if (m<=0||n <= 0) {
console.log('m和n必须大于0');
return;
}
var a = m;
var b = n;
(a >= b) ? (a = m, b = n) : (a = n, b = m);
if (m != 1 && n != 1) {
for (var i = b; i >= 2; i--) {
if (m % i == 0 && n % i == 0) {
m = m / i;
n = n / i;
}
}
}
arr[0] = m;
arr[1] = n;
return arr;
}
网友评论