কম্পিউটার

C++ এ একটি অ্যারে থেকে সর্বাধিক মূলদ সংখ্যা (বা ভগ্নাংশ)


এই সমস্যায়, আমাদেরকে একটি 2-ডি অ্যারে দেওয়া হয়েছে যাতে মূলদ সংখ্যা রয়েছে (প্রতিটি সারিতে একটি)। আমাদের কাজ হল C++-এ একটি অ্যারে থেকে সর্বাধিক সংখ্যাসূচক সংখ্যা (বা ভগ্নাংশ) গণনা করার জন্য একটি প্রোগ্রাম তৈরি করা।

সমস্যা বর্ণনা − 2-D অ্যারে ফর্মটি [n][2]। প্রতিটি সারিতে দুটি পূর্ণসংখ্যার মান রয়েছে যা মূলদ সংখ্যা, a/b এর সমীকরণে a এবং b এর মান নির্দেশ করে। আমাদের এই সমস্ত মূলদ সংখ্যার মধ্যে সবচেয়ে বড় সংখ্যাটি বের করতে হবে।

সমস্যাটি বোঝার জন্য একটি উদাহরণ নেওয়া যাক,

ইনপুট

rat[][] = {
   {3, 2},
   {5, 7},
   {1, 9},
   {11, 4}
}

আউটপুট

11 4

ব্যাখ্যা

এর মধ্যে সর্বাধিক সংখ্যা
3/2 , 5/7 , 1/9 , 11/4 is 11/4.

সমাধান পদ্ধতি

সমস্যা সমাধানের জন্য, আমাদের সংখ্যাগুলির মানগুলি খুঁজে বের করতে হবে এবং তারপরে তাদের মানগুলির তুলনা করতে হবে। তবে, এটি একটি ত্রুটি দিতে পারে যদি নির্ভুলতার মধ্যে পার্থক্য বেশি হয় যেমন, আমরা যদি ফ্লোট ব্যবহার করি তবে আমরা মূলদ সংখ্যা, 34.12313431123 এবং 34.12313431124 এর মধ্যে পার্থক্য করতে পারি না।

সুতরাং, আমরা মান তুলনা করার জন্য অন্য পদ্ধতি ব্যবহার করব। এটি সমস্ত হরগুলির LCM ব্যবহার করছে এবং তারপর সেই অনুযায়ী অংকগুলি পরিবর্তন করছে। এর পরে, অংকের তুলনা সর্বোচ্চ সংখ্যা প্রদান করবে।

আমাদের সমাধানের বাস্তবায়ন দেখানোর জন্য প্রোগ্রাম,

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
const int n = 4;
int findMaxRatNum(int ratNum[n][2]){
   int numArray[n];
   int LCM = 1;
   int mavVal = 0, index = 0;
   for (int i = 0; i < n; i++)
      LCM = (LCM * ratNum[i][1]) / __gcd(LCM, ratNum[i][1]);
   for (int i = 0; i < n; i++) {
      numArray[i] = (ratNum[i][0]) * (LCM / ratNum[i][1]);
      if (mavVal < numArray[i]) {
         mavVal = numArray[i];
         index = i;
      }
   }
   return index;
}
int main(){
   int ratNum[n][2] = {{3, 2},{5, 7},{1, 9},{11, 4}};
   int i = findMaxRatNum(ratNum);
   cout<<"The maximum rational number from an array is "<<ratNum[i][0]<<"/"<<ratNum[i][1];
}

আউটপুট

The maximum rational number from an array is 11/4

  1. একটি অ্যারেতে মৌলিক সংখ্যা K খুঁজুন যেমন (A[i] % K) C++-এ সর্বাধিক

  2. C++ এ অ্যারেতে সবচেয়ে কাছের নম্বর খুঁজুন

  3. C++ এ মূলদ সংখ্যার LCM খুঁজুন

  4. কিভাবে C++ এ একটি ফাংশন থেকে একটি অ্যারে ফেরত যায়?