JavaScript 中笨拙的阶乘问题的解决方案
javascriptweb developmentobject oriented programming更新于 2025/10/24 18:20:17
通常,正整数 n 的阶乘是所有小于或等于 n 的正整数的乘积。例如,阶乘(10)= 10 * 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1。
我们改为制作一个笨拙的阶乘:使用按降序排列的整数,我们将乘法运算换成固定的循环运算:按此顺序乘法(*)、除法(/)、加法(+)和减法(-)。
例如,笨拙的(10)= 10 * 9 / 8 + 7 - 6 * 5 / 4 + 3 - 2 * 1。但是,这些运算仍然使用通常的算术运算顺序进行应用:我们在任何加法或减法步骤之前执行所有乘法和除法步骤,并且乘法和除法步骤从左到右处理。
让我们用 JavaScript 编写此函数的代码 −
示例
const clumsy = num => {
let k=num;
let res = 0, temp=1, i=0;
while(k>0){
temp = k;
if(k-1>0){
temp*=(k-1);
}
if(k-2>0){
temp/=(k-2);
}
if(k-3>0){
if(k===num){
temp+=(k-3);
}else{
temp-=(k-3);
}
}
if(k===num){
res = temp;
}else{
res = res-temp;
}
k = k-4;
}
return res;
};
console.log(clumsy(4));
console.log(clumsy(10));
console.log(clumsy(16));
console.log(clumsy(5));
输出
控制台中的输出将是 −
7 11.75 16.609523809523807 7.666666666666668
相关文章
有用资源
javascript 参考教程 - 该教程包含有关 javascript 的更多信息:https://www.cainiaomax.com/javascript/

