यहां n संख्या में खंड दिए गए हैं, प्रत्येक खंड में, सड़क के दो किनारे इमारतें बनाने के लिए हैं। अगर दो घरों के बीच एक खाली जगह की आवश्यकता है, तो प्लॉट में इमारतें बनाने के कितने संभावित तरीके हैं।
इमारतें बनाने के चार संभावनाएं हैं
- सड़क का एक किनारा
- सड़क का दूसरा किनारा
- कोई इमारत नहीं बनाई जा सकती
- सड़क के दोनों किनारे
इनपुट और आउटपुट
इनपुट: यह इमारतें बनाने के लिए खंडों की संख्या लेता है। मान लें इनपुट 3 है। आउटपुट: खंडों की संख्या दर्ज करें: 3 इमारतें 25 अलग-अलग तरीकों से बनाई जा सकती हैं।
एल्गोरिदम
constructionWays(n)
इनपुट: n संख्या में खंड हैं।
आउटपुट: संभावित तरीकों की संख्या।
शुरू यदि n = 1, तो वापस करें 4 countEnd := 1 countEndSpace := 1 i := 2 से n तक, करें prevCountEnd := countEnd prevCountEndSpace := countEndSpace countEndSpace := countEnd + prevCountEndSpace countEnd := prevCountEndSpace किया answer := countEndSpace + countEnd answer^2 वापस करें अंत
उदाहरण
#include<iostream> using namespace std; int constructionWays(int n) { if (n == 1) //यदि एक खंड है return 4; //उस खंड में इमारत बनाने के 4 संभावित तरीके //अंत में स्थान और अंत में खाली स्थान के लिए गिनती मान सेट करें int countEnd=1, countEndSpace=1, prevCountEnd, prevCountEndSpace; for (int i=2; i<=n; i++) { //दूसरे खंड से nवें खंड के लिए prevCountEnd = countEnd; prevCountEndSpace = countEndSpace; countEndSpace = countEnd + prevCountEndSpace; countEnd = prevCountEndSpace; } //खाली स्थान के साथ समाप्त होने और अंत में इमारत के संभावित तरीके int answer = countEndSpace + countEnd; return (answer*answer); //दो किनारों के लिए उत्तर वर्ग होगा } int main() { int n; cout << "Enter Number of sections: "; cin >> n; cout << "Buildings can be constructed in " << constructionWays(n) <<" different ways." ; }
आउटपुट
Enter Number of sections: 3 Buildings can be constructed in 25 different ways.