#include <iostream>
#include <vector>
using namespace std;
int tilingProblem(int n) { // 2xn
if(n==0 || n==1) {
return 1;
}
//vertical
int ans1 = tilingProblem(n-1); // 2x(n-1)
// horizontal
int ans2 = tilingProblem(n-2); // 2x(n-2)
return ans1+ans2;
}
int main() {
int n = 3;
cout << tilingProblem(4) << endl;
return 0;
}
OUTPUT:
5
Smaller code than original one...
ReplyDelete#include
#include
using namespace std;
int tilingProblem(int n) { // 2xn
if(n==0 || n==1) {
return 1;
}
return tilingProblem(n-1)+tilingProblem(n-2);
}
int main() {
int n = 3;
cout << tilingProblem(5) << endl; // 2x5
return 0;
}