問候。
我在這個系列中發布了 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中文網其他相關文章!