ご挨拶
このシリーズでは、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 は部分的に探している数値になるからです。必要なのは整数部分だけです。それは「ん」です。それは床でもあります。
「m」が立方体の合計を表さない場合、関数は -1 を返します。大したことはありません。
それは機能します。ただし、半年後の私が何かを理解できるかどうかはわかりません。
気をつけてね。水を飲みましょう???
前
以上がCodewars - キューブの山を構築するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。