import java.util.*;
class Main {
public static String reverseString(String originalString){
return reverseStringRecursive(originalString, originalString.length());
}
public static String reverseStringIterative(String originalString){
String reversed="";
for (int i=0; i < originalString.length();i++){
reversed+= originalString.charAt(originalString.length()-1-i);
}
return reversed;
}
public static String reverseStringRecursive(String originalString, int position){
if (originalString == null && originalString.length() ==0){
return "";
}
if (position == 0){
return "";
}
return originalString.charAt(position-1)+ reverseStringRecursive(originalString, position -1);
}
public static int factorial(int n){
if (n <= 0 ){
System.out.println("Invalid number for factorial");
return 0;
}
if (n ==1){
return 1;
}
return n* factorial (n-1);
}
public static int factorialIterative(int n){
if (n <= 0 ){
System.out.println("Invalid number for factorial");
return 0;
}
int result=1;
while (n >0){
result = result*n;
n--;
}
return result;
}
// 0 1 1 2 3 5
// 0 1 2 3 4 5
public static int fibonacci(int n){
if (n <= 1){
return n;
}
return fibonacci(n-1) + fibonacci (n-2);
}
public static int fibonacciIterative (int n){
ArrayList<Integer> fibonacciList = new ArrayList<Integer>();
fibonacciList.add(0);
fibonacciList.add(1);
for (int i =2 ; i<= n; i++){
fibonacciList.add(fibonacciList.get(i-1)+fibonacciList.get(i-2));
}
return fibonacciList.get(n);
}
public static void main(String[] args) {
System.out.println("Original- 1234567890 "+ " Reversed - "+reverseStringIterative("1234567890"));
}
}