6 का factorial recursively कैसे क्वेरी करें
पिछले अभ्यास में, आपने 5! को एक iterative समाधान से क्वेरी किया था। अब, आप 6! को recursively गणना करेंगे। हम समस्या को उसी प्रकार की छोटी समस्याओं में तोड़ते हैं ताकि factorial n! को recursively परिभाषित किया जा सके। इसके लिए निम्न परिभाषा का उपयोग कर सकते हैं:
0! = 1जबstep = 0(n+1)! = n! * (step+1)जबstep > 0
इस सरल परिभाषा से आप किसी भी संख्या का factorial निकाल सकते हैं। इस अभ्यास में, n! को factorial द्वारा दर्शाया गया है।
आप ऊपर दी गई परिभाषा का उपयोग एक recursive CTE की मदद से करने जा रहे हैं।
यह अभ्यास पाठ्यक्रम का हिस्सा है
SQL Server में Hierarchical और Recursive Queries
अभ्यास निर्देश
factorialऔरstepफ़ील्ड्स को 1 से initialize करें।- recursive भाग को
factorial * (step + 1)से calculate करें। - जब वर्तमान iteration मान लक्ष्य factorial संख्या से छोटा रहे, तब recursion प्रक्रिया रोक दें।
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
WITH calculate_factorial AS (
SELECT
-- Initialize step and the factorial number
___ AS step,
___ AS factorial
UNION ALL
SELECT
step + 1,
-- Calculate the recursive part by n!*(n+1)
___ * (step + 1)
FROM calculate_factorial
-- Stop the recursion reaching the wanted factorial number
WHERE step < ___)
SELECT factorial
FROM calculate_factorial;