정수 집합과 집합 합계에서 빼야 하는 값이 있습니다.
여기처럼
[4, 5, 6, 7, 8] − 25
모든 숫자에서 균등하게 빼면 -
[−1, 0, 1, 2, 3]
그러나 0보다 작은 숫자는 원하지 않습니다.
따라서 이를 수행하는 알고리즘을 작성하는 경우 음수는 나머지 숫자로 동일하게 오버플로되며 이제 -
[0, 0, 1, 2, 3] − 1
결과 집합 만들기 -
[0, 0, 1 - 0.333, 2 - 0.333, 3 - 0.333]
이것이 바로 우리가 원하는 결과입니다.
모든 음수 값은 나머지 양수 값으로 균등하게 오버플로됩니다.
숫자 배열을 첫 번째 인수로, 합계를 두 번째 인수로 취하는 JavaScript 함수를 작성해야 합니다.
그런 다음 함수는 균등하게 빼서 분포된 배열을 계산하고 반환해야 합니다.
예시
이에 대한 코드는 -
const arr =[4, 5, 6, 7, 8]; const 빼기 =(arr, sum) => { return arr.map((el, index, array) => { const rem =array.length - 인덱스 const avg =합계 / rem, const toSubtract =Math.min(avg, el), 합계 −=toSubtract, return el − toSubtract, });};console.log(subtract(arr, 25));사전>출력
콘솔의 출력은 -
[ 0, 0, 0.666666666666667, 1.666666666666666, 2.666666666666666 ]