#include<iostream>
using namespace std;
int climbStairsRecursive(int n) {
if (n <= 1) {
return 1;
}
return climbStairsRecursive(n-1) + climbStairsRecursive(n-2);
}
int climbStairsIterative(int n) {
if (n <= 1) {
return 1;
}
int a = 1, b = 1;
for (int i = 2; i <= n; ++i) {
int temp = b;
b = a + b;
a = temp;
}
return b;
}
int factorialRecursive(int n) {
if (n == 0 || n == 1) {
return 1;
}
return n * factorialRecursive(n-1);
}
int factorialIterative(int n) {
int result = 1;
for (int i = 1; i <= n; ++i) {
result *= i;
}
return result;
}
int main() {
cout << "Climb Stairs Recursive: " << climbStairsRecursive(5) << endl;
cout << "Climb Stairs Iterative: " << climbStairsIterative(5) << endl;
cout << "Climb Stairs Recursive: " << climbStairsRecursive(8) << endl;
cout << "Climb Stairs Iterative: " << climbStairsIterative(8) << endl;
cout << "Factorial Recursive: " << factorialRecursive(6) << endl;
cout << "Factorial Iterative: " << factorialIterative(6) << endl;
cout << "Factorial Recursive: " << factorialRecursive(5) << endl;
cout << "Factorial Iterative: " << factorialIterative(5) << endl;
return 0;
}