在通过jsperf运行'ol factorial recursive one-liner第一百万次之后,我决定尝试一些更有趣的东西......但它没有用!
function n(cap){
return (function y(x){
return ((x < cap) ? x^2/y(x+1)+2*x-1 : 1)
}(1))
}
然而,应该起作用(并且为更大的“上限”值返回越来越精确的实际值);当对数字0-19运行时,它在Chrome的控制台中产生以下输出:
1 (x2)
2
0
2 (x16)
我很茫然。当逐步执行时,给定调用堆栈,它显然是递归但是无法返回除自然数之外的任何内容。有什么想法吗?
答案 0 :(得分:6)
这是您的^
,这是一个按位xor
, 不是 一个电力运营商。提出一些事情:Math.pow(2, 10) == 1024
JavaScript中的所有按位操作都有一个隐式的转换为int,意思是0^3.14159265358979323846 == 3