Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

JavaScriptで数値が加法シーケンスを形成するかどうかの判断


加算番号

加算番号は、数字が加算シーケンスを形成できる数値文字列です。

有効な加算シーケンスには、少なくとも3つの数値が含まれている必要があります。最初の2つの数字を除いて、シーケンス内の後続の各数字は、前の2つの数字の合計でなければなりません。数字「0」〜「9」のみを含む文字列を指定して、それが加算番号であるかどうかを判別する関数を記述します。

−加算シーケンスの数値に先行ゼロを含めることはできないため、シーケンス1、2、03または1、02、3は無効です。

例-

文字列「199100199」は加法的整数です。これは、加法的シーケンスが-1、99、100、199-

であるためです。
1 + 99 = 100, 99 + 100 = 199

このためのコードは-

になります
const str = "199100199";
const isAdditiveNumber = (numStr) => {
   if(numStr.length < 3) return false;
   let str = "";
   let seen = true;
   for(let i = numStr.length − 1; i > 1; i−−){
      str = `${numStr[i]}${str}`;
      if(numStr[i] === "0") continue;
      let s = str;
      let s2 = numStr[i − 1]
      for(let j = i − 2; j >= 0; j−−){
         if(`${s2}`.startsWith("0") && s2.length > 1){
            s2 = `${numStr[j]}${s2}` seen = false;
         } else if(parseInt(s) >= parseInt(s2)){
            let diff = s − s2;
            if(numStr.slice(0, j + 1).endsWith(diff)){
               s = s2;
               s2 = diff;
               let ind = Math.floor(Math.log10(diff));
               ind = ind < 0 ? 0 : ind
               j −= ind;
               seen = true;
            }else {
               s2 = `${numStr[j]}${s2}`
               seen = false;
            }
         }else{
            seen = false;
            break;
         }
      }
      if(seen) return seen;
   };
   return seen;
};
console.log(isAdditiveNumber(str));

出力

そして、コンソールの出力は-

になります
true

  1. Javascriptのフィボナッチ数列

    フィボナッチ数は、最初の2つ以降のシリーズのすべての数が、前の2つの数の合計になるような数です。シリーズは1、1で始まります。例- 1, 1, 2, 3, 5, 8, 13, 21, 34, …. 次のようにn番目を生成するプログラムを書くことができます- functionfibNaive(n) {    if (n<= 1) return n;    returnfibNaive(n - 1) + fibNaive(n - 2); } -を使用してこれをテストできます console.log(fibNaive(7)); cons

  2. JavaScript番号の例

    以下はJavaScriptの数字の例です- 例 <!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>    body