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

JavaScriptで数値を互いに近いn個の部分に分割する


問題

最初の引数として数値numを取り、2番目の引数として別の数値partsを受け取るJavaScript関数を作成する必要があります。

この関数は、数値numを正確に(部分)の数値に分割する必要があり、これら2つの条件を念頭に置く必要があります-

  • 数値はできるだけ近いものにする必要があります
  • 数値は(可能であれば)均等にする必要があります。

また、番号の順序は重要ではありません。

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

の場合

入力

const num = 20;
const parts = 6;

出力

const output = [3, 3, 3, 3, 4, 4];

以下はコードです-

const num = 20;
const parts = 6;
const splitNumber = (num = 1, parts = 1) => {
   let n = Math.floor(num / parts);
   const arr = [];
   for (let i = 0; i < parts; i++){
      arr.push(n)
   };
   if(arr.reduce((a, b)=> a + b,0) === num){
      return arr;
   };
   for(let i = 0; i < parts; i++){
      arr[i]++;
      if(arr.reduce((a, b) => a + b, 0) === num){
         return arr;
      };
   };
};
console.log(splitNumber(num, parts));

出力

[ 4, 4, 3, 3, 3, 3 ]

  1. JavaScriptで数値を因数分解する

    引数として正の整数をとるJavaScript関数を作成する必要があります。関数は、入力された数値を正確に除算するすべての数値の配列を作成して返す必要があります。 例- 入力番号が-の場合 const num = 12; その場合、出力は-になります。 const output = [1, 2, 3, 4, 6, 12]; 例 以下はコードです- const findFactors = (num = 1) => {    let half = Math.floor(num / 2);    const res = [1]; // 1 wil

  2. JavaScriptで文字列を最大部分に分割する

    問題 最初で唯一の引数として文字列strを受け取るJavaScript関数を作成する必要があります。 この関数の目的は、この文字列をできるだけ多くの部分に分割して、各文字が多くても1つの部分に表示されるようにし、これらの部分のサイズを表す整数の配列を返すことです。 たとえば、関数への入力が 入力 const str = "ababcbacadefegdehijhklij"; 出力 const output = [9, 7, 8]; 出力の説明 パーティションは「ababcbaca」、「defegde」、「hijhklij」です。これは、各文字が多くても1