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

JavaScriptで連続する要素の合計が完全な正方形である特定のサイズの配列を構築する


数値nを受け取るJavaScript関数を作成する必要があります。この関数は、2つの連続する数値の合計が正方形になるように配置された整数1..nの配列を返す必要があります。

このためのコードは-

になります
const n = 15;
const buildSquaresArray = (n = 1, res = []) => {
   const helper = (res, set, n) => {
      if(set.size === n){
         return true;
      };
      for(let i = 1; i <= n; i++){
         if (set.has(i)){
            continue;
         };
         if(res.length && Math.sqrt(res[0] + i) % 1 !== 0){
            continue;
         };
         set.add(i);
         res.unshift(i);
         if(helper(res,set,n)){
            return true;
         }
         res.shift();
         set.delete(i);
      };
      return false;
   };
   return helper(res,new Set(),n) ? res : false;
};
console.log(buildSquaresArray(n));

出力

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

になります
[
   9,  
   7,  
   2,
   14,
   11,  
   5,
   4,
   12,
   13,  
   3,  
   6,
   10,
   15,  
   1,  
   8
]

  1. 整数は、JavaScriptでは完全な平方として除数の2乗の合計を持ちます

    問題 2つの数値mとnの配列で指定された範囲をとるJavaScript関数を作成する必要があります。 この関数は、mとnの間のすべての整数(1 <=m <=nなどのmとnの整数)を見つけて、除数の2乗の合計自体が2乗になるようにする必要があります。 サブ配列の配列を返す必要があります。サブアレイには2つの要素があります。最初に2乗された除数の数が2乗で、次に2乗された除数の合計です。 例 以下はコードです- const range = [1, 500]; const listSquared = ([m, n]) => {    const res = [];

  2. JavaScriptでインデックスの合計が最小の共通要素

    問題 最初と2番目の引数として、2つのリテラル配列arr1とarr2を受け取るJavaScript関数を作成する必要があります。 私たちの関数は、共通の要素を見つける必要があります arr1とarr2で、最小リストインデックス合計 。回答の間に選択の同点がある場合は、注文要件なしですべてを出力する必要があります。 たとえば、関数への入力が-の場合 const arr1 = ['a', 'b', 'c', 'd']; const arr2 = ['d', 'a', 'c'];