এখানে n নম্বর বিভাগ দেওয়া হয়েছে, প্রতিটি বিভাগে, ভবন নির্মাণের রাস্তার দুটি দিক রয়েছে। যদি দুটি বাড়ির মধ্যে একটি খালি জায়গা প্রয়োজন হয়, তাহলে প্লটে ভবন নির্মাণের সম্ভাব্য কতগুলি উপায়।
ভবন নির্মাণের চারটি সম্ভাবনা রয়েছে
- রাস্তার একপাশে
- রাস্তার অন্য পাশ
- কোনো ভবন নির্মাণ করা যাবে না
- রাস্তার দুই পাশে
ইনপুট এবং আউটপুট
Input: It takes the number of sections to construct buildings. Say the input is 3. Output: Enter Number of sections: 3 Buildings can be constructed in 25 different ways.
অ্যালগরিদম
constructionWays(n)
ইনপুট: এখানে n নম্বর সেকশন আছে।
আউটপুট - সম্ভাব্য উপায়ের সংখ্যা।
Begin if n = 1, then return 4 countEnd := 1 countEndSpace := 1 for i := 2 to n, do prevCountEnd := countEnd prevCountEndSpace := countEndSpace countEndSpace := countEnd + prevCountEndSpace countEnd := prevCountEndSpace done answer := countEndSpace + countEnd return answer^2 End
উদাহরণ
#include<iostream> using namespace std; int constructionWays(int n) { if (n == 1) //if there is one section return 4; //4 possible ways to construct building in that section //set counting values for place at the end and end with space int countEnd=1, countEndSpace=1, prevCountEnd, prevCountEndSpace; for (int i=2; i<=n; i++) { //fot the second section to nth section prevCountEnd = countEnd; prevCountEndSpace = countEndSpace; countEndSpace = countEnd + prevCountEndSpace; countEnd = prevCountEndSpace; } //possible ways to end with space and building at the end int answer = countEndSpace + countEnd; return (answer*answer); //for two sides the answer will be squared } 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.