Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript에서 숫자를 서로 가까운 n 부분으로 나누기

<시간/>

문제

첫 번째 인수로 숫자 num을, 두 번째 인수로 다른 숫자 parts를 사용하는 JavaScript 함수를 작성해야 합니다.

우리의 함수는 숫자 num을 정확히 (부분) 숫자로 분할해야 하며 이 두 가지 조건을 염두에 두어야 합니다 -

  • 숫자는 최대한 비슷해야 합니다.
  • 숫자는 짝수여야 합니다(가능한 경우).

그리고 숫자의 순서는 중요하지 않습니다.

예를 들어, 함수에 대한 입력이 -

인 경우

입력

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 ]