Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C#

C# का उपयोग करके दी गई संख्या से अद्वितीय योग संयोजन कैसे खोजें?


वैध अनुक्रमों को संग्रहीत करने के लिए एक आउटपुट सूची बनाएं, एक वर्तमान सूची बनाएं जो रिकर्सन ट्री के पथ में पाए गए वर्तमान अनुक्रम को संग्रहीत करे। एक बैकट्रैक फ़ंक्शन जो रिकर्सन में तब तक जाएगा जब तक लक्ष्य प्राप्त नहीं हो जाता, अन्यथा पिछले चरण में वापस आ जाना चाहिए क्योंकि लक्ष्य 0 से कम हो जाता है। किसी भी समय, यदि लक्ष्य 0 हो जाता है तो उम्मीदवार ऐरे को परिणाम में जोड़ें क्योंकि उम्मीदवार ऐरे में मान दिए गए लक्ष्य तक जुड़ने चाहिए।

यदि वे मामले नहीं हैं तो, एक-एक करके उम्मीदवार ऐरे में एलिमेंट जोड़ें और रिकर्सिव रूप से आगे बढ़ें।

मान लें, संख्या 5 है तो हमें उन संख्याओं को खोजने की जरूरत है जो 5 बनाती हैं। आउटपुट होगा "1,4", "2,3", 5। आउटपुट से 014, 023 और 05 को हटाया जा सकता है।

उदाहरण

using System; using System.Collections.Generic; using System.Text; using System.Linq; namespace ConsoleApplication{    public class BackTracking{       public void UniqueCombinationOfNumbersCorrespondsToSum(int n){          int[] array = new int[n + 1];          for (int i = 1; i <= n; i++){             array[i] = i;}             List<int> currentList = new List<int>();             List<List<int>> output = new List<List<int>>();             UniqueCombinationSum(array, n, 0, 0, currentList, output);             foreach (var item in output){                StringBuilder s = new StringBuilder();                foreach (var item1 in item){                   s.Append(item1.ToString());                }                Console.WriteLine(s);                s = null;             }          }          private void UniqueCombinationSum(int[] array, int target, int sum, int index, List<int> currentList, List<List<int>> output){             if (sum == target){                List<int> newList = new List<int>();                newList.AddRange(currentList);                output.Add(newList);                return;             }             else if (sum > target){                return;             }             else{                for (int i = index; i < array.Length; i++){                   currentList.Add(array[i]);                   UniqueCombinationSum(array, target, sum + array[i], i + 1, currentList, output);                   currentList.Remove(array[i]);                }             }          }       }       class Program{          static void Main(string[] args){             BackTracking b = new BackTracking();             b.UniqueCombinationOfNumbersCorrespondsToSum(5);          }       }      } }

आउटपुट

14 23 05
  1. - C# में रिकर्सन का उपयोग करके संख्या के अंकों का योग कैसे ढूंढें

    रिकर्सन का उपयोग करके अंकों का योग प्राप्त करने के लिए, C# में एक विधि सेट करें जो योग की गणना करती है। static int sum(int n) { if (n != 0) { return (n % 10 + sum(n / 10)); } else { return 0; } } उपरोक्त विधि योग लौटाती है और इसकी जांच तब तक करती है जब तक दर्ज की गई संख्

  1. - Python का उपयोग करके दी गई संख्या में अंकों की संख्या कैसे ज्ञात करें?

    इस प्रोग्राम में, हमें उपयोगकर्ता द्वारा दी गई एक पूर्णांक में अंकों की संख्या ज्ञात करनी है।उदाहरण के लिएउपयोगकर्ता इनपुट: 123, आउटपुट: 3उपयोगकर्ता इनपुट: 1987, आउटपुट: 4एल्गोरिदमचरण 1: उपयोगकर्ता से पूर्णांक मान इनपुट के रूप में लें।चरण 2: संख्या को 10 से विभाजित करें और भागफल को पूर्णांक प्रकार म

  1. - C++ में दिए गए निर्भरताओं से कार्यों का क्रम खोजें

    मान लीजिए हमारे पास n अलग-अलग कार्य हैं; ये कार्य 0 से n-1 तक लेबल किए गए हैं। कुछ कार्यों में पूर्वापेक्षा कार्य हो सकते हैं, इसलिए उदाहरण के लिए यदि हम कार्य 2 चुनना चाहते हैं तो हमें पहले कार्य 1 पूरा करना होगा, जिसे एक युग्म के रूप में दर्शाया गया है: [2, 1]। यदि हमारे पास कार्यों की कुल संख्या