#include 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; }