কম্পিউটার

C-তে হ্রাসকৃত আকারে প্রদত্ত N ভগ্নাংশের গুণফল


N ভগ্নাংশের লব সংখ্যা এবং হর ডেন দেওয়া, কাজ হল পণ্য N ভগ্নাংশ খুঁজে বের করা এবং আউটপুট হ্রাস আকারে হওয়া উচিত।

নীচের চিত্রের মতো আমাদের দুটি ভগ্নাংশ রয়েছে "4/5" এবং "3/4" আমরা সেই দুটি উপদলের গুণফল খুঁজে পেয়েছি যেখানে প্রথমটির লবটি দ্বিতীয়টির লব দ্বারা গুণিত হয় এবং প্রথমটির হরটি গুণিত হয়। দ্বিতীয়টির হর এখন চূড়ান্ত ফলাফল হল “12/20” যা কমানো যেতে পারে তাই আউটপুট হবে “3/5” একইভাবে প্রদত্ত সমস্যা সমাধানের জন্য আমাদের একটি প্রোগ্রাম তৈরি করতে হবে।

C-তে হ্রাসকৃত আকারে প্রদত্ত N ভগ্নাংশের গুণফল

ইনপুট

fraction f[3] = {{1,2},
{2,1},
{5,6}}

আউটপুট

5/6

ব্যাখ্যা − 1/2 * 2/1 * 5/6 =10/12 তাই আমরা এটিকে 5/6 হিসাবে কমাতে পারি।

ইনপুট

fraction f[2] = {{2, 3},
{1,4}}

আউটপুট

1/6

ব্যাখ্যা − 2/3 * 1/4 =2/12 যা 1/6 হিসাবে হ্রাস করা যেতে পারে

সমস্যা সমাধানের জন্য নিচের পদ্ধতিটি ব্যবহার করা হয়েছে

উপরের সমস্যাটি সমাধান করার জন্য আমরা সমস্ত হর এবং লব গুণতে পারি, ফলাফলটিকে অন্য একটি ভেরিয়েবলে সংরক্ষণ করতে পারি prod_den এবং prod_num যা হবে যথাক্রমে চূড়ান্ত হর এবং চূড়ান্ত লব এখন আমাদের হ্রাসকৃত ফর্মটি খুঁজে বের করতে হবে, এর জন্য আমাদের GCD খুঁজে বের করতে হবে। prod_num এবং prod_den এর (সর্বশ্রেষ্ঠ সাধারণ ভাজক) এবং prod_num এবং prod_den তাদের নিজ নিজ GCD দিয়ে ভাগ করুন।

অ্যালগরিদম

Start
Declare a struct fraction with following elements
   1. num, 2. den
In function int GCD(int a, int b)
   Step 1→ If a == 0 then,
      Return b
   Step 2→ Return GCD(b % a, a)
In function int product(int n, fraction f[])
   Step 1→ Initialize prod_num = 1 prod_den = 1
   Step 2→ Loop For i = 0; i < n; i++
      prod_num = prod_num * f[i].num
      prod_den = prod_den * f[i].den
   Step 3→ Declare and initialize gcd = GCD(prod_num, prod_den)
   Step 4→ prod_num = prod_num / gcd
   Step 5→ prod_den = prod_den / gcd
   Step 6→ Print prod_num, prod_den
In Function int main()
   Step 1→ Declare struct fraction f[3] = {
      {1,2},
      {2,1},
      {5,6}}
   Step 2→ Declare and initialization n as sizeof(f)/sizeof(f[0])
   Step 3→ product(n, f)
Stop
হিসাবে

উদাহরণ

#include <stdio.h>
struct fraction{
   int num;
   int den;
};
// Function to return gcd of a and b
int GCD(int a, int b){
   if (a == 0)
      return b;
   return GCD(b % a, a);
}
//fucntion to print the result
int product(int n, fraction f[]){
   int prod_num = 1, prod_den = 1;
   // finding the product of all N
   // numerators and denominators.
   for (int i = 0; i < n; i++) {
      prod_num *= f[i].num;
      prod_den *= f[i].den;
   }
   // Finding GCD of new numerator and
   // denominator
   int gcd = GCD(prod_num, prod_den);
   // finding reduced form
   prod_num /= gcd;
   prod_den /= gcd;
   printf("%d/%d\n", prod_num, prod_den);
   return 0;
}
int main(){
   struct fraction f[3] = {
      {1,2},
      {2,1},
      {5,6}};
   int n = sizeof(f)/sizeof(f[0]);
   product(n, f);
   return 0;
}

আউটপুট

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

উৎপন্ন করবে
5/6

  1. প্রথম অ্যারেতে সর্বাধিক এবং C-তে দ্বিতীয়টিতে সর্বনিম্ন পণ্য

  2. অ্যারের পণ্যের জন্য সি প্রোগ্রাম

  3. প্রদত্ত পণ্যের সাথে একটি জোড়া C++ এ লিঙ্কযুক্ত তালিকায় বিদ্যমান কিনা তা পরীক্ষা করুন

  4. প্রদত্ত পণ্যের সাথে একটি জোড়া C++ এ ম্যাট্রিক্সে বিদ্যমান কিনা তা পরীক্ষা করুন