再帰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>