Computer >> Máy Tính >  >> Lập trình >> Javascript

Chia số thành n phần gần nhau trong JavaScript

Vấn đề

Chúng tôi được yêu cầu viết một hàm JavaScript lấy một số, num, làm đối số đầu tiên và một số khác, các phần, làm đối số thứ hai.

Hàm của chúng ta nên chia số num thành các số (phần) chính xác và chúng ta nên ghi nhớ hai điều kiện này -

  • Các con số phải càng gần càng tốt
  • Các con số phải chẵn (nếu có thể).

Và thứ tự các con số không quan trọng.

Ví dụ:nếu đầu vào của hàm là -

Đầu vào

const num = 20;
const parts = 6;

Đầu ra

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

Ví dụ

Sau đây là mã -

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));

Đầu ra

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