समस्या
हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना आवश्यक है जो संख्याओं की एक सरणी लेता है, एआर, पहले तर्क के रूप में, और एक संख्या, संख्या, दूसरे तर्क के रूप में। हमारे फ़ंक्शन को उन (सन्निहित, गैर-रिक्त) उप-सरणियों की संख्या वापस करनी चाहिए जिनका योग संख्या से विभाज्य है।
उदाहरण के लिए, यदि फ़ंक्शन का इनपुट है -
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