下你所需,载你所想!
汇集开发技术源码资料

因式分解工具JavaScript原版及注释

:26.39KB :1 :2023-02-02 16:54:11

部分简介

function Factorise(a,b,c){ \\ 函数Factorise,参数a,b,c
a=Number(a); \\ 将变量a转换为数字类型
b=Number(b); \\ 将变量b转换为数字类型
c=Number(c); \\ 将变量c转换为数字类型
if (isNaN(a)||isNaN(b)||isNaN(c)){ \\ 检测a、b、c三个变量是不是数字
return [false] \\ 如果其中一个不是,返回假
}
var factor_a=findFactor(a); \\ 求a所有的因数并赋值给变量factor_a
var factor_c=findFactor(c); \\ 求a所有的因数并赋值给变量factor_a
if ((b**2-a*c)===0){ \\ 如果b*2-a*c=0的话
return [false] \\ 返回假
}
var numbers_a; \\ 定义变量numbers_a
var numbers_c; \\ 定义变量numbers_c
for (numbers_a of factor_a){ \\ 循环,逐次将factor_a的值赋给numbers_a
for (numbers_c of factor_c){ \\ 循环,逐次将factor_c的值赋给numbers_c
if ((numbers_a[0]*numbers_c[0]+numbers_a[1]*numbers_c[1])===b){ \\ 如果左边=右边
return [true,[[numbers_a[0],numbers_c[1]],[numbers_a[1],numbers_c[0]]]] \\ 返回真,和对应数组的内容
}
if ((numbers_a[1]*numbers_c[0]+numbers_a[0]*numbers_c[1])===b){ \\ 如果左边=右边
return [true,[[numbers_a[1],numbers_c[1]],[numbers_a[0],numbers_c[0]]]] \\ 返回真,和对应数组的内容
}
}
}
return [false] \\ 返回假
}
function findFactor(num){ \\ 函数,取num的所有因数
var factors=[]; \\ 定义变量factors(列表)
var i; \\ 定义变量i
for(i=Math.abs(num);i>=-Math.abs(num);i--){ \\ Math.abs,取num的绝对值,i需要大于等于num绝对值,
if ((num%i)===0){ \\ 如果num除i的余数是0
var theOther=num/i; \\ 定义变量theOther并赋值num除i的余数
factors.push([i,theOther]); \\ 在factors中加入i和theOther的值
}
}
return factors \\ 返回factors
}

因式分解工具JavaScript原版及注释

热门推荐

相关文章