Recursion 101

Uncategorized
CAT Studio1 min read
js
public class Launch {
    public static int fact(int n){
        if(n==0){
            return 1;
        } else {
            return n * fact(n - 1);
        }
    }
    public static int getSum(int n){
        if(n==1){
            return 1;
        }
        return n*getSum(n-1);
    }

    public static long getFibanocii(int n){
        if(n==0 || n==1){
            return n;
        }
        return getFibanocii(n-1) + getFibanocii(n-2);
    }   
    public static int pow(int x, int n){
        if(n==0){
            return 1;
        }
        return x * pow(x, n-1);
    }
    public static long fibanocii(int n){
        long a = 0;
        long b = 1;
        
        for(long i = 2; i <= n; i++){
            long c = a + b;
            a = b;
            b = c;
        }
        return b;
    }
    
    public static void printNto1(int n){
        if(n==0){
            return;
        }
        printNto1(n-1);
        System.out.println(n);

    }
    
    public static int linearHelper(int start,int[] arr,int target){
        if(start==arr.length){
            return -1;
        }
        if(arr[start]==target){
            return start;
        }
        return linearHelper(start+1,arr,target);

    }
    
    public static int linearSearchRecursion(int[] arr,int target){
        return linearHelper(0,arr,target);
    }
    
    public static void main(String[] args) {
        // long res1 = fibanocii(50);
        // System.out.println("Fibanocii Iteration: " + res1);
        // long res = getFibanocii(50);
        // System.out.println("Fibanocii Recursion: " + res);
        // System.out.println("Power : " + pow(2,5));
        int [] arr = {1,2,6,7,8,9,0,10};
        int idx = linearSearchRecursion(arr,6);
        System.out.println(idx);
    }
}