কম্পিউটার

C-তে ঋণাত্মক সহ একটি সেটের দুটি উপসেটের মধ্যে পার্থক্য সর্বাধিক করুন


আমাদের ধনাত্মক এবং ঋণাত্মক পূর্ণসংখ্যার একটি অ্যারে দেওয়া হয়েছে। কাজটি হল অ্যারেতে উপস্থিত উপাদানগুলির ইতিবাচক এবং নেতিবাচক উপসেটের মধ্যে সর্বাধিক পার্থক্য খুঁজে বের করা। যেহেতু আমাদের কাছে ধনাত্মক এবং ঋণাত্মক সংখ্যার উপসেট রয়েছে। তারপর পার্থক্য (ধনাত্মকের যোগফল) - (নেতিবাচকের যোগফল) সর্বদা সর্বাধিক হবে। কারণ নেতিবাচক বিয়োগ করলে সেগুলো যোগ হবে। সমস্ত নেতিবাচককে ধনাত্মক তে রূপান্তর করা এবং অ্যারের সমস্ত উপাদান যোগ করলে কাঙ্খিত ফলাফল পাওয়া যাবে। −

বোঝার জন্য উদাহরণ দেখি

ইনপুট − Arr[] ={ -2, 0, -3, 8, 10, 12, -4 }

আউটপুট − দুটি উপসেটের মধ্যে সর্বাধিক পার্থক্য − 39

ব্যাখ্যা − ধনাত্মক পূর্ণসংখ্যা উপসেট {0, 8,10,12} যোগফল হল 30

নেতিবাচক পূর্ণসংখ্যার উপসেট { -2, -3, -4 } যোগফল হল -9

সর্বাধিক পার্থক্য হবে 30 - (-9) =39

ইনপুট − Arr[] ={ -5, -15, -3, -2, 10, 20, 15 }

আউটপুট − দুটি উপসেটের মধ্যে সর্বাধিক পার্থক্য − 70

ব্যাখ্যা − ধনাত্মক পূর্ণসংখ্যা উপসেট { 10, 20, 15 } যোগফল হল 45

ঋণাত্মক পূর্ণসংখ্যার উপসেট { -5, -15, -3, -2 } যোগফল হল -25

সর্বোচ্চ পার্থক্য হবে 45 - (-25) =70

নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি

  • আমরা ধনাত্মক এবং ঋণাত্মক পূর্ণসংখ্যা সহ একটি পূর্ণসংখ্যার বিন্যাস নিই

  • ফাংশন subsetDifference( int arr[],int n) হল ঋণাত্মক এবং ধনাত্মক পূর্ণসংখ্যার দুটি উপসেটের মধ্যে সর্বাধিক পার্থক্য খুঁজে বের করা। এটি দুটি আর্গুমেন্ট নেয়, একটি অ্যারে নিজেই এবং অন্যটি এর আকার n৷

  • অ্যারের সমস্ত উপাদানের যোগফল সংরক্ষণ করতে একটি পরিবর্তনশীল যোগফল =0 নিন।

  • বাম থেকে শুরু করে, লুপ ( i=0;i ব্যবহার করে অ্যারের প্রতিটি উপাদান অতিক্রম করুন

  • বর্তমান উপাদান ঋণাত্মক হলে (<0) -1 দিয়ে গুণ করে এটিকে ধনাত্মক করুন।( arr[i]=arr[i]*-1 )

  • যোগফল প্রতিটি উপাদান যোগ করুন.

  • সর্বোচ্চ উপসেট পার্থক্য হিসাবে যোগফল ফেরত দিন।

উদাহরণ

#include <stdio.h>
int subsetDifference(int arr[], int n){
   int sum = 0;
   for (int i = 0; i < n; i++){
      if(arr[i]<0)
         arr[i]=arr[i]*-1;
      sum += arr[i];
   }
   return sum;
}
// Driver Code
int main(){
   int arr[] = { -1, 3, 5, 17, -32, 12 };
   int n = 6;
   printf("Maximized difference between subsets : %d", subsetDifference(arr, n));
   return 0;
}

আউটপুট

যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −

উৎপন্ন করবে
Maximized difference between two subsets: 70

  1. অ্যান্ড্রয়েডে দুটি তারিখের মধ্যে পার্থক্য কীভাবে পাবেন?

  2. C# প্রোগ্রাম দুটি সিকোয়েন্সের মধ্যে পার্থক্য ফেরত দিতে

  3. দুটি তারিখের মধ্যে পার্থক্য পেতে C# প্রোগ্রাম

  4. C# প্রোগ্রাম দুটি তালিকার মধ্যে পার্থক্য তালিকাভুক্ত করতে