Problem

5/12

पुनरावर्तन और पुनरावृत्ति

Theory Click to read/hide

रिकर्सन और पुनरावृत्ति
रिकर्सन को समझने के लिए, आपको रिकर्सन को समझने की जरूरत है...
 
पुनरावृति प्रोग्रामिंग में - एक चरणचक्रीय डेटा संसाधन प्रक्रिया का। 
वर्तमान चरण (पुनरावृत्ति) पर अक्सर पुनरावृत्त एल्गोरिदम पिछले चरणों में गणना किए गए समान ऑपरेशन या क्रिया के परिणाम का उपयोग करते हैं।  ऐसी गणनाओं का एक उदाहरण पुनरावृत्ति संबंधों की गणना है। 
पुनरावर्ती मान का एक सरल उदाहरण भाज्य है: \(N!=1 \cdot 2 \cdot 3 \cdot \ ... \ \cdot N\)
प्रत्येक चरण (पुनरावृत्ति) पर मूल्य की गणना \(N=N \cdot i\) है।  \(N\) के मान की गणना करते समय, हम पहले से संग्रहीत मान लेते हैं \(N\)।< बीआर />
किसी संख्या के क्रमगुणन को पुनरावर्ती सूत्र:
का उपयोग करके भी वर्णित किया जा सकता है \(\begin{equation*} n!= \begin{cases} 1 &\text{n <= 1,}\\ (n-1)! \cdot n &\text{n > 1.} \end{cases} \end{equation*}\)

आप देख सकते हैं कि यह विवरण एक पुनरावर्ती क्रिया से अधिक कुछ नहीं है।
यहां पहली लाइन (\(n <= 1\)) बेस केस (रिकर्सन टर्मिनेशन कंडीशन) है और दूसरी लाइन अगले स्टेप के लिए ट्रांजिशन है।  < br />   <टेबल क्लास = "टेबल-एसएम टेबल-बॉर्डर टेबल-स्ट्राइप्ड टेबल-लिस्ट-टेस्ट"> <शरीर> रिकर्सिव फैक्टोरियल फंक्शन पुनरावृत्ति एल्गोरिद्म <टीडी> इंट फैक्टोरियल (इंट एन) { अगर (एन एंड जीटी; 1) रिटर्न एन * फैक्टोरियल (एन - 1); और वापसी 1; } <टीडी> एक्स = 1; के लिए (i = 2; i <= n; i++) एक्स = एक्स * मैं; cout << एक्स;
यह समझा जाना चाहिए कि फ़ंक्शन कॉल में कुछ अतिरिक्त ओवरहेड शामिल होते हैं, इसलिए एक गैर-पुनरावर्ती फैक्टोरियल गणना थोड़ी तेज़ होगी। 

निष्कर्ष:
जहां आप एक सरल पुनरावृत्ति एल्गोरिथ्म के साथ एक कार्यक्रम लिख सकते हैं, बिना पुनरावर्तन के, तो आपको बिना पुनरावर्तन के लिखने की आवश्यकता है। लेकिन फिर भी, समस्याओं का एक बड़ा वर्ग है जहाँ कम्प्यूटेशनल प्रक्रिया केवल पुनरावर्तन द्वारा कार्यान्वित की जाती है।
दूसरी ओर, पुनरावर्ती एल्गोरिदम अक्सर अधिक समझने योग्य होते हैं।
 

Problem

एक फ़ंक्शन K(n) परिभाषित करें जो किसी दिए गए प्राकृतिक नंबर n में अंकों की संख्या को
के रूप में लौटाता है
\(\begin{equation*} K(n) = \begin{cases} 1 &\text{if n < 10}\\ K(n / 10) + 1 &\text{if n >= 10} \end{cases} \end{equation*}\)

उपरोक्त अनुपात का उपयोग करके प्राकृतिक संख्या n में अंकों की संख्या की गणना करने के लिए एक पुनरावर्ती फ़ंक्शन लिखें।