const stepRecursive = (n) => {
if (n==1) {
return 1
} else if (n==2){
return 2
}
return (stepRecursive(n-1)+ stepRecursive(n-2))
}
const stepIterative = (n) => {
let pps = 1
let ps = 2
let result = 0
for(let i = 3; i <= n; i++){
result = pps + ps
pps = ps
ps = result
}
return result
}
const factorialRecursive = (n) => {
if (n==0) {
return 1
}
return (fn2(n-1) * n)
}
const factorialIterative = (n) => {
if (n==0) {
return 1
}
let result = 1
for(let i = 1; i <= n; i++){
result *= i
}
return result
}
console.log(factorialIterative(5))
const fibonacciRecursive = (n) => {
if (n==1) {
return 1
} else if (n==2){
return 1
}
return (fibonacciRecursive(n-1)+ fibonacciRecursive(n-2))
}
const fibonacciIterative = (n) => {
let pps = 1
let ps = 1
let result = 0
for(let i = 3; i <= n; i++){
result = pps + ps
pps = ps
ps = result
}
return result
}
console.log(fibonacciIterative(5))
const isPalindromeRecursive = (str) => {
if (str.length <= 1) {
return true;
}
if (str[0] === str[str.length - 1]) {
return isPalindromeRecursive(str.slice(1, -1));
} else {
return false;
}
}
console.log(isPalindromeRecursive('ggteeatgg'))
const isPalindromeIterative = (str) => {
let start = 0
let end = str.length -1
for(let i = 0; i <= end/2 + 1; i++){
if (str[start] !== str[end]) {
return false;
}
start++;
end--;
}
return true
}
console.log(isPalindromeIterative('ggtaetgg'))