【发布时间】:2019-12-15 21:40:16
【问题描述】:
这是一个 JavaScript 程序,假设返回 (a & b) 的最大值,该值也小于 k(即 a & b
function data(n, k) {
var res = [];
for (var i = 1; i <= n; i++) {
for (var j = 2; j <= n; j++) {
if (i >= j) continue;
let a = i.toString(2);
let b = j.toString(2);
var c = a & b;
c = parseInt(c, 2);
res.push(c)
}
}
var res = res.filter(function(e) {
return e < k;
});
return Math.max(...res);
}
console.log( data(955, 236) );
它返回 234,而不是 235... 我尝试过其他方法,例如 Reduce 和所有...但我认为我的问题源于我比较 a & b 的按位和...
【问题讨论】:
-
请测试您发布的代码。它不返回 234,它记录一个错误。你有 935 次迭代,每次迭代 935 次...... 874,225 次迭代计算我没有最模糊的想法(与二进制,.. 按位,.. 香蕉有关?)。当然,无论做什么都超出了调用堆栈的荒谬数量。确定 235 小于 236 的工作量太大。
-
我有...我返回234....这个挑战其实来自hackerrank
-
点击蓝色按钮运行问题代码:运行代码 sn-p。从未听说过 hackerrank,您能详细说明一下吗?是网站吗?如果是这样,请发布指向与此挑战相关的相关位置的链接
-
我使用了那个按钮,它显示 234。Hackerrank 实际上是一个网站。我最终在网上找到了解决方案。我现在将发布答案。
标签: javascript arrays function bitwise-and