मैं जावा: द पूर्ण संदर्भ पुस्तक का उपयोग कर जावा सीख रहा हूं। वर्तमान में मैं विषय रिकर्सन पर काम कर रहा हूं।जावा में रिकर्सन का उपयोग कर फैक्टोरियल
कृपया ध्यान दें: स्टैक ओवरफ्लो पर समान प्रश्न हैं। मैंने उन्हें खोजा लेकिन मुझे अपने प्रश्न का हल नहीं मिला। मैं निम्नलिखित कार्यक्रम में तर्क से उलझन में हूं।
यदि मैं नीचे दिया गया प्रोग्राम चलाता हूं, तो यह सही आउटपुट उत्पन्न करता है, लेकिन मुझे तर्क समझ में नहीं आया।
- मुझे निम्न पंक्ति में तर्क समझ में नहीं आया: परिणाम = तथ्य (एन -1) * एन; मेरी जानकारी से
- , अगर हम n के मूल्य पारित = 4 के रूप में नीचे कार्यक्रम में दिखाया गया है,
- फिर, 3 * 4 परिणाम यानी, संग्रहीत किया जाता है 12.
- फिर, तथ्य (n- 1) कहा जाता है। फिर एन बन जाता है 3.
- फिर 2 * 3 पिछले 12 को बदलकर परिणाम में संग्रहीत किया जाता है।
मुझे लगता है कि आप समझ गए हैं कि मैं कहां फंस गया/उलझन में हूं।
धन्यवाद।
class Calculation { int fact(int n) { int result; if(n==1) return 1; result = fact(n-1) * n; return result; } } public class Factorial { public static void main(String args[]) { Calculation obj_one = new Calculation(); int a = obj_one.fact(4); System.out.println("The factorial of the number is : " + a); } }
मेरी सलाह जावा में गहरी खुदाई करने से पहले है, आपको पहले रिकर्सन के पीछे गणित को समझने की आवश्यकता है। यदि आपने ऐसा नहीं किया है, तो यह आपके लिए en.wikipedia.org/wiki/Recursion – GETah
आशा है कि यह आपको बहुत स्पष्ट बनाता है http://www.programmerinterview.com/index।PHP/रिकर्सन/स्पष्टीकरण-ऑफ-रिकर्सन/ – Rangesh