再帰JavaScriptを使用したハッピー数の決定
ハッピー数
ハッピー数は、各桁の2乗の合計で置き換えると最終的に1に達する数です。一方、このプロセス中に任意の数が繰り返されると、サイクルは無限に実行され、そのような数は不幸な数と呼ばれます。
たとえば、-13はハッピー数です。なぜなら、
1^2 + 3^2 = 10 and, 1^2 + 0^2 = 1
一方、36は不幸な数字です。
再帰を使用して、数値がハッピー数であるかどうかを判断する関数を作成する必要があります。
それでは、この関数を書き出しましょう。この関数の鍵は、すでに出現した数字の記録を保持する必要があることです。同じ数字が別の出現をした場合はfalseになり、2乗した数字の合計が1になるとtrueを返します。
オブジェクトを使用して、すでに表示されている番号を追跡します。setorMapを使用することもできますが、単純なオブジェクトでも実行できます。
そのためのコードは-
になります例
const squareSumRecursively = (n, res = 0) => { if(n){ return squareSumRecursively(Math.floor(n/10), res+Math.pow((n%10),2)); }; return res; }; const isHappy = (num, map = {}) => { if(num !== 1){ if(map[num]){ return false; } map[num] = 1; return isHappy(squareSumRecursively(num), map); }; return true; } console.log(isHappy(36)); console.log(isHappy(13)); console.log(isHappy(36)); console.log(isHappy(23));
出力
コンソールの出力は-
になりますfalse true false true
-
JavaScriptを使用してNumberオブジェクトを作成するにはどうすればよいですか?
Numberオブジェクトは、整数または浮動小数点数のいずれかの数値の日付を表します。数値オブジェクトを作成するための構文は次のとおりです- var val = new Number(number); new演算子のないNumberオブジェクトを使用して、型変換を実行できます。 Number.MAX_VALUEプロパティの例を見てみましょう。 Number.MAX_VALUEプロパティは、静的なNumberオブジェクトに属しています。 例 ライブデモ <html> <head> <script&g
-
JavaScriptで10進数を検証するにはどうすればよいですか?
以下は、JavaScriptで10進数を検証するためのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style>