समस्या
हमें एक JavaScript फ़ंक्शन लिखना है जो पॉजिटिव इंटीजर्स का एक ऐरे लेता है। हम निम्नलिखित ऑपरेशन को जितनी बार आवश्यक हो उतनी बार चलाकर इसके एलिमेंट्स को बदल सकते हैं −
if arr[i] > arr[j] then arr[i] = arr[i] - arr[j]
जब कोई और ट्रांसफॉर्मेशन संभव न हो, तो हमारा फ़ंक्शन उसका योग लौटाना चाहिए।
उदाहरण
निम्नलिखिक कोड है −
const arr = [6, 9, 21]; const smallestSum = (arr = []) => { const equalNums = arr => arr.reduce((a, b) => { return (a === b) ? a : NaN; }); if(equalNums(arr)){ return arr.reduce((a, b) => { return a + b; }); }else{ const sorted = arr.sort((a, b) => { return a-b; }); const last = sorted[arr.length-1] - sorted[0] sorted.pop(); sorted.push(last); return smallestSum(sorted); }; }; console.log(smallestSum(arr));आउटपुट
कंसोल आउटपुट निम्नलिखिक है −
9