问候。
我在本系列中发布了 Codewars 挑战和我的思考过程。我尽可能使用 JS 和 Node 18。只是为了清楚起见,我正在合理使用它们。
下一个对于我们这些数学困难的人来说很棘手。不过,这是一个很好的挑战。本质上,它归结为计算“n”个立方的总和。然后还有一些黑魔法(又名:代数)等瞧!解决了。
立方之和用证明解释。
完整解决方案:
function findNb(m) { // sum of n cubes = ( n^2 * (n+1)^2 ) / 4 let number = m * 4; number = number ** (1/2); let numberAux = number ** (1/2); let floor = Math.floor(numberAux); let ceiling = (Number.isInteger(numberAux)) ? floor + 1 : Math.ceil(numberAux); if ( floor * ceiling == number ){ return floor; } return (-1); }
为什么我们要计算下限和上限?因为如果参数 m 确实代表“n”个立方体的总和,那么 numberAux 就是我们要查找的数字的一部分。我们只需要整数部分。这是“n”。而且还是地板。
如果 'm' 不代表立方之和,则函数返回 -1。没什么大不了的。
它有效。我不知道 6 个月后的我是否能理解任何事情。
保重。喝水???.
上一页
以上是Codewars - 构建一堆立方体的详细内容。更多信息请关注PHP中文网其他相关文章!