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

JavaScriptでnで割り切れる合計


問題

最初の引数として数値の配列arrを取り、2番目の引数として数値numを受け取るJavaScript関数を作成する必要があります。この関数は、合計がnumで割り切れる(連続した、空でない)サブ配列の数を返す必要があります。

たとえば、関数への入力が-

の場合
const arr = [4, 5, 0, -2, -3, 1];
const num = 5;

その場合、出力は-

になります。
const output = 7;

出力の説明

合計が5で割り切れる7つのサブ配列があります-

[4, 5, 0, -2, -3, 1], [5], [5, 0], [5, 0, -2, -3], [0], [0, -2, -3], [-2, -3]

このためのコードは-

になります
const arr = [4, 5, 0, -2, -3, 1];
const num = 5;
const divisibleSum = (arr = [], num = 1) => {
   const map = {};
   let sum = 0;
   for (let i = 0; i < arr.length; i++) {
      sum += arr[i];
      const key = ((sum % num) + num) % num;
      map[key] = map[key]+1||1;
   };
   let s = 0;
   for (let i = 0; i < num; i++) {
      if (map[i] > 1) {
         s += (map[i] * (map[i] - 1)) / 2;
      }
   }
   return s + (map[0]||0);
};
console.log(divisibleSum(arr, num));

出力

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

になります
7

  1. JavaScriptのnumよりも小さい最大の長方形の合計

    問題 最初の引数として数値の2次元配列を取り、2番目の引数としてターゲットの合計数を受け取るJavaScript関数を作成する必要があります。 関数は、配列内のすべての長方形の中で最大の合計を持つが、関数の2番目の引数で指定されたターゲットの合計以下である2次元配列からその長方形を見つける必要があります。 その後、関数は最終的にその最大の合計を返す必要があります。たとえば、関数への入力が-の場合 const arr = [    [1, 0, 1],    [0, -2, 3] ]; const num = 2; その場合、出力は-になります。

  2. XまたはYで割り切れる最初のN個の自然数の合計

    XまたはYで割り切れるnまでのすべての自然数を合計すると、XまたはYで割り切れるすべての数が選択され、合計を格納する変数に追加されます。 XまたはYで割り切れる最初のN個の自然数の合計を見つけるには、2つの方法があります- ループと条件文の使用 数式の使用 方法1-ループと条件文の使用 このメソッドは、最大n個の数値をカウントし、XまたはYで割り切れる数値を選択してそれらを追加し、各反復で変数に保存するループを使用します。 サンプルコード #include <stdio.h> int main(void) {    int n = 54;