समस्या
हमें एक JavaScript फ़ंक्शन लिखना है जो संख्याओं की एक सरणी arr को पहले आर्गुमेंट के रूप में और एक संख्या num को दूसरे आर्गुमेंट के रूप में लेता है।
हमें इसमें तत्व जोड़कर अपनी सरणी को ऐसा बनाना चाहिए कि [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