問候。
我在這個系列中發布了 Codewars 挑戰和我的思考過程。我盡可能使用 JS 和 Node 18。只是為了清楚起見,我正在合理地使用它們。
本系列的下一篇是「你是個正方形!」。看,你的樂高癮有點失控了,你現在正在編碼作為替代藥物。
嗯,你還好嗎?你的下一個任務涉及正方形。所以問題尋求回答「這個數字是平方嗎?」。那麼,我們該如何解決這個問題呢?然而我們渴望。與任何編碼問題一樣。
首先,解決它。然後,正確解決。然後,正確快速地解決它。
我的第一直覺引導我這麼做:
var isSquare = function(n){ let nIsSquare = false; if (n>=0) { nIsSquare = ( n ** 2 ) == 2 * ( (n - 1) ** 2 ) - ( (n-2) ** 2 ) + 2; } return nIsSquare; }
這是錯的。我跟一起去了
n^2 = 2(n − 1)^2 − (n − 2)^2 2n22222=2(n−1)1) 2−(n−2)2
var isSquare = function(n){ let nIsSquare = false; if (n>=0) { let sqrt = Math.E ** ( Math.log(n) / 2 ); nIsSquare = Number.isInteger(sqrt); } return nIsSquare; }
的公式。我需要一個公式來驗證
n
var isSquare = function(n){ let nIsSquare = false; if (n>=0) { nIsSquare = Number.isInteger(Math.sqrt(n)); } return nIsSquare; }
第 2 步:正確執行更多錯誤 在另一篇維基百科文章中,有一種簡潔、簡潔的方法來計算平方根:指數恆等式。 所以我們修復了先前的程式碼: Annnnnnnnnnnnnd: 哦,來吧。為什麼會失敗?哦。 JavaScript 對浮點數做了一些奇怪的事。所以,這不是程式碼的錯。正確的?猜猜我們永遠不會知道。即便如此,我還是愛你,JS。你這個古怪的混蛋。 第三步:正確快速地做 只要使用 Math.sqrt(): 不是最好的,而是最簡單的解決方案。做這份工作。 再見。喝水???.
上一頁
以上是Codewars - 你是一個方塊!的詳細內容。更多資訊請關注PHP中文網其他相關文章!