हमें एक सीढ़ी में कुल चरणों की संख्या दी गई है जो कि n है। एक व्यक्ति एक बार में 1, 2 या 3 कदम छोड़ कर अगली मंजिल पर पहुंच सकता है। लक्ष्य उन तरीकों की संख्या का पता लगाना है जिनसे ऐसा करके अगली मंजिल तक पहुंचा जा सकता है।
हम पुनरावर्ती विधि का उपयोग इस बात को ध्यान में रखते हुए करेंगे कि किसी भी चरण तक पहुँचने के लिए, एक व्यक्ति को i-1वें चरण (1 चरण छोड़ें), i-2वें चरण (2 चरणों को छोड़ें) या i-3वें चरण से कूदना होगा ( 3 कदम छोड़ें)।
आइए उदाहरणों से समझते हैं।
इनपुट
N=3 steps
आउटपुट
Count of ways to reach the nth stair using step 1, 2 or 3 are: 4
स्पष्टीकरण
There are total 3 steps Jump from start ( skip 3 ) : 3 step Jump from 1’st step (skip 2): 1+2 Jump from 2nd step (skip 1): 2+1 No skip 1+1+1
इनपुट
N=6 steps
आउटपुट
Count of ways to reach the nth stair using step 1, 2 or 3 are: 24
स्पष्टीकरण
There are total 6 steps Ways: 1+1+1+1+1+1, 2+1+1+1+1, 3+1+1+1, 3+1+2, 3+2+1, 3+3 and so on.
नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है
-
हम कुल चरणों के रूप में पूर्णांक कदम उठा रहे हैं।
-
फंक्शन सीढ़ियों_स्टेप (इंट स्टेप्स) सभी चरणों को इनपुट के रूप में लेता है और छलांग लगाकर या नहीं करके अगली मंजिल तक पहुंचने के लिए कई तरीके देता है..
-
ऐसे तरीकों के लिए प्रारंभिक चर गणना को 0 के रूप में लें।
-
अगर नंबर 0 रिटर्न 1 है।
-
अगर कदमों की संख्या 1 ही 1 रास्ता है।
-
यदि चरण संख्या 2 केवल 2 तरीके ( 1+1 या 2 ) है।
-
अन्य तरीके =सीढ़ियां_कदम (चरण-3)+सीढ़ी_चरण(चरण-2)+सीढ़ी_चरण(चरण-1).
(पुनरावर्ती विधि)
उदाहरण
#include <iostream> using namespace std; int stairs_step(int steps){ if(steps == 0){ return 1; } else if(steps == 1){ return 1; } else if (steps == 2){ return 2; } else{ return stairs_step(steps - 3) + stairs_step(steps - 2) + stairs_step(steps - 1); } } int main(){ int steps = 5; cout<<"Count of ways to reach the nth stair using step 1, 2 or 3 are: "<<stairs_step(steps); return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -
Count of ways to reach the nth stair using step 1, 2 or 3 are: 13