एन सीढ़ियां हैं। एक व्यक्ति पहली से नौवीं सीढ़ी पर जाएगा। वह एक कदम में अधिकतम कितनी सीढ़ियाँ पार कर सकता है, यह भी दिया गया है। इस जानकारी से हमें नौवीं सीढ़ियों तक जाने के संभावित रास्ते तलाशने होंगे।
आइए मान लें कि प्रत्येक चरण में अधिकतम दो सीढ़ियां पार की जा सकती हैं। तो हम इस समस्या को हल करने के लिए पुनरावर्ती संबंध पा सकते हैं। कोई n'th सीढ़ी पर जा सकता है, या तो (n-1)'वें सीढ़ी से या (n-2)'वें सीढ़ी से। तो तरीके (एन) =तरीके (एन -1) + तरीके (एन -2)।
इनपुट और आउटपुट
इनपुट:सीढ़ियों की संख्या, मान लें कि एक कदम में अधिकतम 10 सीढ़ियां चढ़ी जा सकती हैं, जैसे 2आउटपुट:सीढ़ियों की संख्या दर्ज करें:10अधिकतम सीढ़ी दर्ज करें जिस पर एक व्यक्ति चढ़ सकता है:2पहुंचने के तरीकों की संख्या:89पूर्व>एल्गोरिदम
stairClimpWays(सीढ़ी, अधिकतम)इनपुट - सीढ़ियों की संख्या, एक कदम में अधिकतम सीढ़ी कूद।
आउटपुट - पहुंचने के संभावित तरीकों की संख्या।
सीढ़ी संख्या गिनती के समान आकार की सरणी गणना को परिभाषित करना शुरू करें [0]:=1 गिनती [0]:=1 के लिए i:=2 से सीढ़ी -1, गिनती करें [i]:=0 j =1 के लिए मैं और जे <=अधिकतम; गिनती करो [i]:=गिनती [i] + गिनती [i - j] किया गया वापसी गिनती [सीढ़ी - 1] समाप्तउदाहरण
#शामिल करेंनेमस्पेस std का उपयोग करना;int stairClimbWays(int stair, int max) {int count[stair]; // नीचे से ऊपर की ओर गिनती का उपयोग करके परिणाम सीढ़ी भरें [0] =1; // जब 0 या 1 सीढ़ियाँ हों, तो चढ़ने का 1 रास्ता गिनती [1] =1; के लिए (int i=2; i > सीढ़ी; cout <<"वह अधिकतम सीढ़ी दर्ज करें जिस पर एक व्यक्ति चढ़ सकता है:"; सिनेमा>> अधिकतम; cout <<"पहुंचने के तरीकों की संख्या:" < आउटपुट
सीढ़ियों की संख्या दर्ज करें:10अधिकतम सीढ़ियां दर्ज करें जिस पर एक व्यक्ति चढ़ सकता है:2पहुंचने के तरीकों की संख्या:89