समस्या
हमें एक JavaScript फ़ंक्शन लिखना है जो संख्याओं की एक सरणी arr को पहले आर्गुमेंट के रूप में और एक संख्या num को दूसरे आर्गुमेंट के रूप में लेता है। हमारे फ़ंक्शन को उन (सन्निकट, गैर-खाली) उपसरणियों की संख्या वापस करनी चाहिए जिनका योग num से विभाज्य है।
उदाहरण के लिए, यदि फ़ंक्शन का इनपुट है -
const arr = [4, 5, 0, -2, -3, 1]; const num = 5;
तो आउटपुट होना चाहिए -
const output = 7;
आउटपुट व्याख्या
5 से विभाज्य योग वाली 7 उपसरणियां हैं -
[4, 5, 0, -2, -3, 1], [5], [5, 0], [5, 0, -2, -3], [0], [0, -2, -3], [-2, -3]
उदाहरण
इसके लिए कोड होगा -
const arr = [4, 5, 0, -2, -3, 1];
const num = 5;
const divisibleSum = (arr = [], num = 1) => {
const map = {};
let sum = 0;
for (let i = 0; i < arr.length; i++) {
sum += arr[i];
const key = ((sum % num) + num) % num;
map[key] = map[key]+1||1;
};
let s = 0;
for (let i = 0; i < num; i++) {
if (map[i] > 1) {
s += (map[i] * (map[i] - 1)) / 2;
}
}
return s + (map[0]||0);
};
console.log(divisibleSum(arr, num));
आउटपुट
कंसोल में आउटपुट होगा -
7