JavaScriptで最も近いギャップフル番号を見つける
-
の場合、数値はギャップのある数値です。- 少なくとも3桁あり、
- 最初と最後の桁を組み合わせて形成される数値で正確に割り切れます
例-
数値1053は、4桁であり、13で正確に割り切れるため、ギャップのある数値です。同様に、135は、3桁であり、15で正確に割り切れるため、ギャップのある数値です。
私たちの仕事は、入力として提供した数値に最も近いギャップのある数値を返すプログラムを作成することです。
たとえば、すべての2桁の数字の場合は100になります。103の場合は105になります。
問題を2つの関数に分割します-
isGapful()関数
次のコードのように、数値文字列を受け取り、ブール値を返します-
const isGapful = (numStr) => { const int = parseInt(numStr); return int % parseInt(numStr[0] + numStr[numStr.length - 1]) === 0; };
nearestGapful()関数
これは、数値を受け取り、最も近いギャップのある数値を返すメイン関数です。これがコードです-
const nearestGapful = (num) => { if(typeof num !== 'number'){ return -1; } if(num <= 100){ return 100; } let prev = num - 1, next = num + 1; while(!isGapful(String(prev)) && !isGapful(String(next))){ prev--; next++; }; return isGapful(String(prev)) ? prev : next; };
isGapful()関数は、数値がギャップがあるかどうかに基づいてブール値を返します。最も近いGapful()関数は、ギャップがある数値が見つかるまでループし、それを返します。
以下は完全なコードです-
例
const n = 134; //receives a number string and returns a boolean const isGapful = (numStr) => { const int = parseInt(numStr); return int % parseInt(numStr[0] + numStr[numStr.length - 1]) === 0; }; //main function -- receives a number, returns a number const nearestGapful = (num) => { if(typeof num !== 'number'){ return -1; } if(num <= 100){ return 100; } let prev = num - 1, next = num + 1; while(!isGapful(String(prev)) && !isGapful(String(next))){ prev--; next++; }; return isGapful(String(prev)) ? prev : next; }; console.log(nearestGapful(n));
出力
コンソールの出力は-
になります135
-
JavaScript数値関数
JavaScript Number()関数は、引数として渡されたオブジェクト値をそれぞれの数値に変換します。 以下は、JavaScript Number()関数のコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> &
-
JavaScriptで数値が三角数かどうかを調べる
三角数 三角数は、正三角形を埋めることができる点の数です。 たとえば、-9は、各辺が4単位の正三角形を作る三角数です。 問題 数値を受け取り、三角数の場合はtrueを返し、それ以外の場合はfalseを返すJavaScript関数を作成する必要があります。 例 以下はコードです- const num = 9; const isTriangular = (num = 1) => { let i = 4; if(num === 1){ return true;