हमें एक जावास्क्रिप्ट फ़ंक्शन लिखने की आवश्यकता है जो संख्याओं की एक सरणी लेता है, एआर, पहले तर्क के रूप में और एक संख्या, संख्या, दूसरे तर्क के रूप में।
फ़ंक्शन को यह निर्धारित करना चाहिए कि क्या सरणी के तत्वों को संख्या समूहों में वितरित करने का कोई तरीका मौजूद है जैसे कि सभी समूहों का योग समान हो। यदि ऐसा कोई तरीका मौजूद है, तो हमारे कार्य को सही, गलत अन्यथा वापस करना चाहिए।
उदाहरण के लिए -
अगर इनपुट ऐरे और नंबर हैं -
const arr =[4, 6, 3, 3, 7, 4, 1];const num =4;
तब आउटपुट होना चाहिए -
कॉन्स्ट आउटपुट =सत्य;
क्योंकि चार समूह हैं:[7], [1, 6], [4, 3], [4, 3]
उदाहरण
इसके लिए कोड होगा -
const arr =[4, 6, 3, 3, 7, 4, 1];const num =4;const canDivide =(arr =[], num =1) => {const sum =arr.reduce( (एसीसी, संख्या) => एसीसी + संख्या); अगर (योग% संख्या! ==0 || arr.some(num => num> sum / num)) {वापसी झूठी; } const इस्तेमाल किया =नया सेट (); वापसी (फ़ंक्शन ढूंढें (प्रारंभ, लक्ष्य) {अगर (प्रयुक्त आकार ===गिरफ्तारी लंबाई) {वापसी सच; } अगर (लक्ष्य <0) {झूठी वापसी; } अगर (लक्ष्य ===0) {वापसी खोजें ( 0, योग / संख्या); } के लिए (चलो i =प्रारंभ; iहमने अपने समाधान में जो कदम उठाए हैं वे हैं -
चरण 1. यदि कुल योग को संख्या से विभाजित नहीं किया जा सकता है या संख्या में से कोई एक योग/संख्या से अधिक है, तो हम झूठी वापसी करते हैं।
चरण 2. हमने इस्तेमाल किए गए नंबरों को ट्रैक करने के लिए हैशसेट का इस्तेमाल किया।
चरण 3. हमने उप-विभाजन ढूंढना शुरू किया।
यदि सभी नंबरों का उपयोग किया जाता है, तो हम कर चुके हैं।
अगर सबसेट का योग बहुत बड़ा था, तो हमने खोजना बंद कर दिया।
यदि हमें एक उपसमुच्चय मिल गया है, तो हमने तब तक खोज जारी रखी जब तक हम सभी संख्याओं का उपयोग नहीं कर लेते।
और अंत में, हमने हर अप्रयुक्त नंबर की कोशिश की।
आउटपुट
और कंसोल में आउटपुट होगा -
<पूर्व>सत्य