首頁 >web前端 >js教程 >Codewars - 建造一堆立方體

Codewars - 建造一堆立方體

Patricia Arquette
Patricia Arquette原創
2025-01-07 08:32:39577瀏覽

問候。

Codewars - Build a pile of Cubes

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn