mastheadIcon

Recursive Bacteria Growth

Stack Demo

    
public static int numBacteriaAlive(int bacteria, int hour){
    if(hour == 0) {
        return bacteria;
    }
    else{
        int numLastHour = numBacteriaAlive(bacteria, hour - 1);
        return numLastHour + numLastHour * 2;
    }
}//end numBacteriaAlive
    
        

int bacteriaPop = nBA(5, 4);

Call: Recursive Call: 'Head' Stmt Return Result:
nBA(5, 0) → 5 (none)
nBA(5, 1) → nBA(5, 0) 3*nBA(5, 0) 3*5 = 15
nBA(5, 2) → nBA(5, 1) 3*nBA(5, 1) 3*15 = 45
nBA(5, 3) → nBA(5, 2) 3*nBA(5, 2) 3*45 = 135
nBA(5, 4) → nBA(5, 3) nBA(5, 3) + 2*nBA(5, 3) 135 + 2*135 = 405