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

JavaScript에서 합계를 다양하게 만들기 위해 배열에 요소 추가

<시간/>

문제

첫 번째 인수로 숫자 배열 arr을, 두 번째 인수로 단일 숫자 num을 취하는 JavaScript 함수를 작성해야 합니다.

요소를 추가하여 배열을 [0, num](둘 다 포함) 사이에 특정 숫자를 추가하여 모든 합을 얻을 수 있도록 만들어야 합니다. 우리의 함수는 마침내 0과 num 사이의 합계를 생성할 수 있도록 배열에 추가하는 데 필요한 최소 수의 숫자를 반환해야 합니다.

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

인 경우
const arr = [1, 5, 10];
const sum = 20;

그러면 출력은 다음과 같아야 합니다. -

const output = 2;

출력 설명:

배열에 두 개의 숫자(2와 4)를 추가하면 [0, 20]

사이의 합계를 얻을 수 있기 때문입니다.

예시

이에 대한 코드는 -

const arr = [1, 5, 10];
const sum = 20;
const minimumAddition = (arr = [], sum = 1) => {
   let canAdd = 1;
   let count = 0,i = 0;
   while(canAdd <= sum){
      if((i >= arr.length) || (canAdd < arr[i])){
         count++;
         canAdd+=canAdd;
      }else{
         canAdd += arr[i++];
      };
   };
   return count;
};
console.log(minimumAddition(arr, sum));

출력

콘솔의 출력은 -

2