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