#include <stdio.h> 



double series(int n);

double seriesSquare(int n);

double seriesBin(int n);

double seriesAlt(int n);



int main() {

 int i;
 
 for (i=1; i<=20; i++) {
    printf("series(%d): %lf\n", i,seriesAlt(i)); 
 }
 return 0;
}


double series(int n) {

  int i;  /* loop counter */
  double sum =0;
  if (n < 0) {
     return -1;
  } 

  for (i=1; i<=n; i = i+1) {
     sum =  1.0/i  + sum;
  }

  return sum;
}


double seriesSquare(int n) {

  int i;  /* loop counter */
  int square;
  double sum =0;
 
  if (n < 0) {
     return -1;
  } 

  for (i=1; i<=n; i = i+1) {

     /* Step 1: compute temp values */
     square = i*i;

     /* Step 2: assemble the summation */
     sum =  1.0/square  + sum;
  }

  return sum;
}


double seriesBin(int n) {

  int i;  /* loop counter */
  int pwr =1;
  double sum =1;
 
  if (n < 0) {
     return -1;
  } 

  for (i=1; i<=n; i = i+1) {

     /* Step 1: compute temp values */

      pwr = pwr*2;

     /* Step 2: assemble the summation */
     sum =  1.0/pwr  + sum;
  }

  return sum;
}


double seriesAlt(int n) {

  int i;  /* loop counter */
  double sign = 1.0;
  int pwr =1;
  double sum =1;
 
  if (n < 0) {
     return -1;
  } 

  for (i=1; i<=n; i = i+1) {

     /* Step 1: compute temp values */
      sign = (-1.0)*sign; 
      pwr = pwr*2;

     /* Step 2: assemble the summation */
        sum =  sign/pwr  + sum;
  }

  return sum;
}