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

JavaScriptの別の別の範囲内にある範囲を合計するアルゴリズム


2セットの範囲があります。 1つは任意の長さの単一の範囲(R1)で、もう1つは範囲のセット(R2)であり、その一部または一部が単一の範囲(R1)内にある場合とない場合があります。

単一の範囲(R1)内にある(R2)の範囲の合計(全体または部分)を計算する必要があります。

const R1 = [20,40];
const R2 = [[14,22],[24,27],[31,35],[38,56]];

結果

= 2+3+4+2 = 11
R1 = [120,356];
R2 = [[234,567]];

結果

122

コードを書いてみましょう-

const R1 = [20,40];
const R2 = [[14,22],[24,27],[31,35],[38,56]];
const R3 = [120,356];
const R4 = [[234,567]];
function sumRanges(range, values) {
   const [start, end] = range;
   const res = values.reduce((acc, val) => {
      const [left, right] = val;
      const ex1 = Math.min(right, end);
      const ex2 = Math.max(left, start);
      const diff = ex1 - ex2;
      return acc + Math.max(0, diff);
   }, 0);
   return res;
};
console.log(sumRanges(R1, R2));
console.log(sumRanges(R3, R4));

出力

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

になります
11
122

  1. JavaScriptを使用して範囲内で1に減少する素数を数える

    問題 2つの数値の範囲配列を受け取るJavaScript関数を作成する必要があります。この関数は、桁の2乗和が最終的に1になるような素数の数を返す必要があります。 たとえば、23は素数であり、 22 + 32 = 13 12 + 32 = 10 12 + 02 = 1 したがって、23は有効な数値である必要があります。 例 以下はコードです- const range = [2, 212]; String.prototype.reduce = Array.prototype.reduce; const isPrime = (n) => {    if ( n&l

  2. JavaScriptを使用して配列内のすべての一般的な要素の合計を見つける

    問題 3つの数値配列を受け取るJavaScript関数を作成する必要があります。この関数は、3つの配列すべてに共通するすべての数値の合計を返す必要があります。 例 以下はコードです- const arr1 = [4, 4, 5, 8, 3]; const arr2 = [7, 3, 7, 4, 1]; const arr3 = [11, 0, 7, 3, 4]; const sumCommon = (arr1 = [], arr2 = [], arr3 = []) => {    let sum = 0;    for(let i = 0; i