n सीढ़ियाँ हैं। एक व्यक्ति 1ली से nवीं सीढ़ी तक जाएगा। एक चरण में वह अधिकतम कितनी सीढ़ियाँ पार कर सकता है, यह भी दिया गया है। इस जानकारी के साथ, हमें nवीं सीढ़ी तक जाने के संभावित तरीके ढूंढने हैं।
आइए मान लें कि कोई एक चरण में अधिकतम दो सीढ़ियाँ पार कर सकता है। तो हम इस समस्या को हल करने के लिए पुनरावर्ती संबंध ढूंढ सकते हैं। कोई nवीं सीढ़ी तक या तो (n-1)वीं सीढ़ी से या (n-2)वीं सीढ़ी से जा सकता है। तो ways(n) = ways(n-1) + ways(n-2)।
इनपुट और आउटपुट
इनपुट: सीढ़ियों की संख्या, मान लें 10 एक चरण में कूदने योग्य अधिकतम सीढ़ियों की संख्या, मान लें 2 आउटपुट: सीढ़ियों की संख्या दर्ज करें: 10 एक चरण में चढ़ने योग्य अधिकतम सीढ़ी दर्ज करें: 2 पहुंचने के तरीकों की संख्या: 89
एल्गोरिदम
stairClimpWays(stair, max)
इनपुट: सीढ़ियों की संख्या, एक चरण में अधिकतम सीढ़ी कूद।
आउटपुट: पहुंचने के संभावित तरीकों की संख्या।
शुरू सीढ़ियों की संख्या के समान आकार की count सरणी परिभाषित करें count[0] := 1 count[0] := 1 i := 2 से stair -1 तक, करें count[i] := 0 j = 1 से i तक और j <= max; करें count[i] := count[i] + count[i - j] किया किया count[stair - 1] वापस करें अंत
उदाहरण
#include<iostream> using namespace std; int stairClimbWays(int stair, int max) { int count[stair]; //नीचे से ऊपर के तरीके से परिणाम सीढ़ी भरें count[0] = 1; //जब 0 या 1 सीढ़ी हो, चढ़ने का 1 तरीका count[1] = 1; for (int i=2; i
आउटपुट
Enter number of stairs: 10 Enter max stair a person can climb: 2 Number of ways to reach: 89