एन अंशों के अंश संख्या और हर को देखते हुए, कार्य उत्पाद एन अंशों को खोजना है और आउटपुट कम रूप में होना चाहिए।
जैसे नीचे दी गई आकृति में हमारे पास दो भिन्न "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