Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

C में दी गई N भिन्नों का गुणनफल सरलतम रूप में


N भिन्नों के अंश num और हर den दिए गए हैं, कार्य 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 में संग्रहीत कर सकते हैं जो अंतिम हर और अंतिम अंश होंगे। अब हमें सरलतम रूप ढूंढना है, उसके लिए हमें prod_num और prod_den का GCD (महत्तम समापवर्तक) ढूंढना होगा और prod_num और prod_den को उनके संबंधित GCD से विभाजित करना होगा।

एल्गोरिदम

शुरू एक struct fraction घोषित करें जिसमें निम्नलिखित तत्व हों     1. num, 2. den फ़ंक्शन int GCD(int a, int b) में     चरण 1 → यदि a == 0 तो,         b लौटाएं     चरण 2 → GCD(b % a, a) लौटाएं फ़ंक्शन int product(int n, fraction f[]) में     चरण 1 → prod_num = 1, prod_den = 1 प्रारंभ करें     चरण 2 → लूप i = 0; i < n; i++ के लिए         prod_num = prod_num * f[i].num         prod_den = prod_den * f[i].den     चरण 3 → gcd = GCD(prod_num, prod_den) घोषित और प्रारंभ करें     चरण 4 → prod_num = prod_num / gcd     चरण 5 → prod_den = prod_den / gcd     चरण 6 → prod_num, prod_den प्रिंट करें फ़ंक्शन int main() में     चरण 1 → struct fraction f[3] = {         {1,2},         {2,1},         {5,6}} घोषित करें     चरण 2 → n को sizeof(f)/sizeof(f[0]) के रूप में घोषित और प्रारंभ करें     चरण 3 → product(n, f) कॉल करें रुकें

उदाहरण

#include <stdio.h> struct fraction{     int num;     int den; }; // a और b का gcd लौटाने वाला फ़ंक्शन int GCD(int a, int b){     if (a == 0)         return b;     return GCD(b % a, a); } // परिणाम प्रिंट करने वाला फ़ंक्शन int product(int n, fraction f[]){     int prod_num = 1, prod_den = 1;     // सभी N अंशों और हरों का गुणनफल ढूंढना     for (int i = 0; i < n; i++) {         prod_num *= f[i].num;         prod_den *= f[i].den;     }     // नए अंश और हर का GCD ढूंढना     int gcd = GCD(prod_num, prod_den);     // सरलतम रूप ढूंढना     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 में पहली सरणी के अधिकतम और दूसरी सरणी के न्यूनतम का गुणनफल

    दो सरणियां arr1[] और arr2[] क्रमशः कुछ आकार n1 और n2 की दी गई हैं, हमें पहली सरणी arr1[] के अधिकतम तत्व और दूसरी सरणी arr2[] के न्यूनतम तत्व का गुणनफल ढूंढना है। जैसे हमारे पास arr1[] = {5, 1, 6, 8, 9} में तत्व हैं और arr2[] = {2, 9, 8, 5, 3} में हैं तो arr1 में अधिकतम तत्व 9 है और arr2 में न्यूनतम

  1. C प्रोग्राम: सरणी के तत्वों का गुणनफल C प्रोग्राम: सरणी के तत्वों का गुणनफल

    समस्या विवरण एक सरणी arr[n] दी गई है, इसके सभी तत्वों का गुणनफल ज्ञात करें। उदाहरण सरणीगुणनफलगणना {10, 20, 3, 4, 8}1920010×20×3×4×8 {1, 2, 3, 4, 3, 2, 1}1441×2×3×4×3×2×1 {5, 0, 10}0शून्य से गुणनफल = 0 एल्गोरिदम result = 1 आरंभ करें प्रत्येक तत्व के लिए: result *= arr[i] result लौटाएं C प्

  1. - C++ में मैट्रिक्स में दिए गए गुणनफल वाली जोड़ी जांचें

    समस्या विवरण N×M मैट्रिक्स और गुणनफल K दिया गया है। जांचें कि क्या मैट्रिक्स में कोई जोड़ी है जिसका गुणनफल K है। उदाहरण: 4×4 मैट्रिक्स, K=42 → जोड़ी (6, 7) मौजूद है हल: हैशिंग मैट्रिक्स ट्रैवर्स करते हुए हैश सेट में तत्व डालें प्रत्येक तत्व के लिए: यदि K वर्तमान से विभाज्य है और K/वर्तमान सेट मे