我如何用javascript表达这个?
9H加平方 3H 满2岁 次L
我正在做类似的事情:
function calculator (height, len) {
var H = height, L = len;
total = (((9 * H)*(9 * H)) + 3*H)/2)*L;
return total;
}
calculator(15, 7);
我不在乎它是否简洁,但我不确定在javascript中处理数学的最佳方法。
谢谢。答案 0 :(得分:5)
将数字 x 平方可以表示为Math.pow(x, 2)
。此外,“超过2倍L”将意味着/ (2 * L)
在最后,而不是你拥有它的方式,如果你的确意味着:
whatever
-----------
2L
您在var
之前也缺少total
关键字,这会将其声明为本地变量。
答案 1 :(得分:4)
霍纳的方法是表达多项式的好方法:
function calc (height, length) {
return ((9*height + 3)*height)/(2*length);
}
答案 2 :(得分:1)
看起来对我很好。你有什么问题?
我唯一看错的是在总计之前缺少var
,从而使其成为全球性的。将您的代码更改为:
function calculator (height, len) {
var H = height,
L = len, // <-- subtle change: replace ; with ,
total = (((9 * H)*(9 * H)) + 3*H)/2)*L;
return total;
}
当然,你也可以分解9:
total = ((81*H*H + 3*H)/2)*L;
如果你想变得更加漂亮,那么也要考虑常见的3*H
:
total = (3*H*(27*H + 1)/2)*L;
但我不确定你还在寻找什么。
答案 3 :(得分:1)
在“9H平方”中,只有H是平方的,所以
function calculator (height, len) {
var H = height, L = len;
var total = (9*H*H + 3*H)/(2*L);
return total;
}
答案 4 :(得分:1)
+1来自Andrew Cooper
(9 * H)*(9 * H)= 81 * H ^ 2,我不相信你打算
9 * H * H = 9H ^ 2是你想要的那个术语
(9 * H * H + 3 * H)/(2 * L)
或因素
(3 * H)(3 * H + 1)/(2 * L)
等于1 + 2 + .. + 3H之和除以L(如果H是整数)
最后一部分可能对你没有任何帮助,但我喜欢identity = P
答案 5 :(得分:0)
你可能会这样......
function calculator (height, len) {
var h = height, l = len;
var total = ( 9 * Math.pow(h, 2) + 3*h ) / (2*l);
return total;
}
不要忘记创建一个带有var
前置的变量将使其全局化:)