हमें इनपुट के रूप में एक पूर्णांक दिया जाता है। लक्ष्य पुनरावर्तन का उपयोग करके n संख्याओं के GCD के सूत्र को मुद्रित करना है।
हम जानते हैं कि तीन संख्याओं का GCD मान लीजिए a1,b1 और c1 gcd(a1,gcd(b1,c1)) होगा। इसी तरह तीन से अधिक संख्याओं के लिए, gcd को gcd के रूप में सूत्र द्वारा प्राप्त किया जा सकता है ( a1,gcd(b1, gcd(c1…..,gcd(y1,z1)).
उदाहरण
इनपुट - संख्या =4;
आउटपुट - सूत्र है:
GCD(int a3, GCD(int a2, GCD(int a1, int b1)))
इनपुट - संख्या =6;
आउटपुट - सूत्र है:GCD(int a5, GCD(int a4, GCD(int a3, GCD(int a2, GCD(int a1, int b1)))))
नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है
इस दृष्टिकोण में हम रिकर्सिव फ़ंक्शन gcdFormula(int num1) का उपयोग कर रहे हैं जो इनपुट के रूप में संख्याओं की गणना करता है और num1 संख्याओं के लिए gcd के सूत्र से युक्त स्ट्रिंग देता है।
आधार मामलों के लिए-:यदि num1 1 रिटर्न स्ट्रिंग "int b"+to_string(num1)+"" है।
Else-:gcdFormula(num1-1) और पिछली स्ट्रिंग को जोड़ने के लिए फिर से रिकर्स करें।
-
इनपुट नंबर संख्या लें।
-
फ़ंक्शन gcdFormula(int num1) जो इनपुट के रूप में संख्याओं की गणना करता है और num1 संख्याओं के लिए gcd के सूत्र से युक्त स्ट्रिंग लौटाता है
-
अगर num1 1 है तो स्ट्रिंग "int b"+to_string(num1)+"" लौटाएं।
-
और प्रिंट करें "GCD(int a"<
-
वापसी के रूप में रिकर्सन चरण के बाद (gcdFormula(num1 - 1)+")")
-
अंत में पूरी स्ट्रिंग वापस कर दी जाएगी।
-
मुख्य के अंदर प्राप्त प्रिंट परिणाम।
उदाहरण
#include <bits/stdc++.h> using namespace std; string gcdFormula(int num1){ if (num1 == 1){ return ("int b"+to_string(num1)+""); } else{ cout<<"GCD(int a"<<num1-1<<", "; return (gcdFormula(num1 - 1)+")"); } } int main(){ int Num = 6; cout<<"Formula is :"<<endl; cout<<gcdFormula(Num); return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा
Formula is : GCD(int a6, GCD(int a5, GCD(int a4, GCD(int a3, GCD(int a2, GCD(int a1, int b1))))))