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

n個の引数の可能なすべての結合された(プラスとマイナスの)合計を見つけるJavaScript


任意の数の引数(すべて数値タイプ)でJavaScript関数を作成する必要があります。

関数は、加算と減算の可能なすべての合計を計算する必要があります。

例-引数が1、2、3の場合

次に、可能なすべての組み合わせは-

1 + 2 + 3
1 - 2 - 3
1 + 2 - 3
1 - 2 + 3

最後に、関数は0に最も近い合計である必要があります。この場合、その答えは0になります。

const findSmallestPositive = (...arr) => {
   let set = new Set([Math.abs(arr[0])]);
   for (let i = 1;
   i < arr.length; i++){
      const secondSet = new Set;
      for (let d of Array.from(set)){
         secondSet.add(Math.abs(d + arr[i]))
         secondSet.add(Math.abs(d - arr[i]))
      };
      set = secondSet;
   };
   return Math.min(...Array.from(set))
};
console.log(findSmallestPositive(5,3))
console.log(findSmallestPositive(1,2,3))
console.log(findSmallestPositive(1,2,3,5))

出力

これにより、次の出力が生成されます-

2
0
1

  1. JavaScriptで配列内のすべてのピークとその位置を見つける

    ビルドアップ JavaScriptに次の配列があるとします- const arr = [4, 3, 4, 7, 5, 2, 3, 4, 3, 2, 3, 4]; この配列の点をy軸にプロットし、隣接する各点をx軸上で単位距離だけ離すと、グラフは次のようになります- このグラフは、この配列のインデックス3と7に、それぞれ値7と4の2つの極大値(ピーク)が存在することを明確に示しています。 問題 整数の配列arrを最初で唯一の引数として受け取るJavaScript関数を作成する必要があります。 この関数は、最大値と位置の2つのプロパティを含むオブジェクトを返すことになっています。

  2. JavaScriptでのすべての衝突後の状態の検索

    問題 1次元空間内のさまざまな小惑星の位置を表す配列arrを取り込むJavaScript関数を作成する必要があります。 各小惑星について、絶対値はそのサイズを表し、符号はその方向を表します(正の意味は右、負の意味は左)。各小惑星は同じ速度で移動します。 私たちの機能は、すべての衝突後の小惑星の状態を見つけることになっています。 2つの小惑星が出会うと、小さい方の小惑星が爆発します。両方が同じサイズの場合、両方が爆発します。同じ方向に移動する2つの小惑星が出会うことはありません。 たとえば、関数への入力が 入力 const arr = [7, 12, -8]; 出力 const