#include<stdio.h>
#include<time.h>
#include<math.h>
clock_t start,stop;
double duration;
#define MAXN 100000
double f1(int n ,double a[] , double x);
double f2(int n ,double a[] , double x);
void printClock(clock_t,clock_t);
int main()
{
int i = 0;
double a[MAXN];
for(i = 0;i < MAXN;i++)
a[i] = (double)i;
start = clock();
f1(MAXN-1 , a , 1.1);
stop = clock();
printClock(start,stop);
start = clock();
f2(MAXN-1 , a , 1.1);
stop = clock();
printClock(start,stop);
}
double f1(int n , double a[] , double x)
{
int i = 0;
double p = a[0];
for(i = 1 ; i <= n ; i++)
p += (a[i] * pow(x,i));
printf("%f\n",p);
return p;
}
double f2(int n , double a[] , double x)
{
int i = 0;
double p = a[n];
for(i = n ; i > 0 ; i--)
p = a[i-1] + x*p;
printf("%f\n",p);
return p;
}
void printClock(clock_t start,clock_t stop)
{
duration = (double)(stop-start)/CLK_TCK;
printf("%f\n",(double)(stop-start));
printf("%6.2e\n",duration);
return ;
}