A4

Nick Salcedo
1-27-14

Max

#include <iostream>
#include <assert.h>
using namespace std;

double max(double v[], int numItems)
{
  assert (numItems > 0);
    if (numItems == 0)
    {
        return v[0];
    }
    else
    {
        if (v[numItems - 1] < v[numItems - 2])
        {
            return max(v, numItems - 1);
        }
        else
        {
            return v[numItems -1];
        }
    }
}

Pow2

#include <iostream>
#include <assert.h>
using namespace std;

int pow2(int k)
{
  assert(k >=0)
    if (k == 0)
    {
        return 1;
    }
    else
    {
        return 2 * pow2(k - 1);
    }
}

Count

#include <iostream>
#include <assert.h>
using namespace std;

int count(int v[], int x, int numItems)
{
  assert(numItems >= 0);
    int i;
    if (numItems == 0)
    {
        return 0;
    }
    else
    {
        if (x == v[numItems])
        {
            i++;
            return count(v, x, numItems - 1) + i;
        }
        else
        {
            return count(v, x, numItems - 1);
        }
    }
}