मान लीजिए, हमें एक सरणी "input_list" प्रदान की जाती है जिसमें पूर्णांक संख्याएं होती हैं। हमें दी गई समस्या यह जांचना है कि क्या दिए गए सरणी को दो हिस्सों में विभाजित किया जा सकता है, जहां दो हिस्सों के योग का अंतर संख्या n के बराबर है। नंबर n पहले ही प्रदान किया जाएगा।
इसलिए, यदि इनपुट इनपुट_लिस्ट =[9,2,5,6], n =0 जैसा है, तो आउटपुट "संभव" होगा।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- list_total :=input_list के मानों का योग
- अगर (list_total - n) मॉड 2 1 के समान है, तो
- वापसी "संभव नहीं"
- वैल:=(list_total - n) / 2
- temp_sum :=0;
- मेरे लिए 0 से लेकर input_list के आकार के लिए, करें
- temp_sum:=temp_sum + input_list[i]
- यदि temp_sum वैल के समान है, तो
- "संभव" लौटाएं
- वापसी "संभव नहीं"
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
def solve(input_list,n): list_total = sum(input_list) if (list_total - n) % 2 == 1: return "Not Possible" val = (list_total - n) / 2 temp_sum = 0; for i in range (0,len(input_list)): temp_sum += input_list[i] if (temp_sum == val): return "Possible" return "Not Possible" input_list= [9,2,5,6] n = 0 print(solve(input_list, n))
इनपुट
[9,2,5,6], 0
आउटपुट
Possible