কম্পিউটার

C++ তে সংমিশ্রণ যোগফল IIII


বিবেচনা করুন আমাদের k সংখ্যার সমস্ত সম্ভাব্য সংমিশ্রণ তৈরি করতে হবে যা একটি সংখ্যা n পর্যন্ত যোগ করে, এই শর্তে যে শুধুমাত্র 1 থেকে 9 পর্যন্ত সংখ্যাগুলি ব্যবহার করা যেতে পারে। প্রতিটি সংমিশ্রণ সংখ্যার একটি অনন্য সেট হওয়া উচিত। সমস্ত সংখ্যা ধনাত্মক হওয়া উচিত, এবং সমাধানে সদৃশ সমন্বয় থাকা উচিত নয়। সুতরাং k =3 এবং n =9 হলে, সম্ভাব্য সমন্বয়গুলি হল [[1,2,6],[1,3,5],[2,3,4]]

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • ধরুন আমরা সমাধান নামক একটি পদ্ধতি তৈরি করে এটি সমাধান করব। এটি পুনরাবৃত্ত পদ্ধতি হবে, এটি k, n, টেম্প অ্যারে এবং শুরু করবে। সূচনা প্রাথমিকভাবে 1
  • যদি n =0
    • যদি temp =k এর আকার হয়, তাহলে res-এ temp সন্নিবেশ করুন এবং রিটার্ন করুন
    • এর জন্য i :=ন্যূনতম 9 এবং n
        থেকে শুরু করুন
      • আমি টেম্পে ঢোকান
      • সমাধান করুন(k, n – i, temp, i + 1)
      • টেম্প থেকে শেষ উপাদানটি মুছুন
  • প্রধান পদ্ধতিটি এরকম হবে
  • টেম্প নামে একটি ফাঁকা ভেক্টর তৈরি করুন
  • সমাধান (k, n, temp)
  • রিটার্ন রিটার্ন

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

উদাহরণ

#include  namespace ব্যবহার করে std;void print_vector(vector> v){ cout <<"["; for(int i =0; i> res; void সমাধান (int k, int n, ভেক্টর  temp, int start =1){ if(n ==0){ if(temp.size() ==k){ res.push_back(temp); } প্রত্যাবর্তন; } for(int i =start; i <=min(9, n); i++){ temp.push_back(i); সমাধান (k, n - i, temp, i + 1); temp.pop_back(); } } ভেক্টর<ভেক্টর> সমন্বয়Sum3(int k, int n) { res.clear(); ভেক্টর  temp; সমাধান (k, n, temp); রিটার্ন রেস; }};প্রধান(){সমাধান ob; print_vector(ob.combinationSum3(2, 9));}

ইনপুট

39

আউটপুট

<প্রে>[[1, 8, ],[2, 7, ],[3, 6, ],[4, 5, ],]
  1. C++ এ সমন্বিত যোগফল IV

  2. C++ তে যোগফল II

  3. C++ এ অ্যালিকোট যোগফল?

  4. পাইথনে সমন্বয় যোগফল