/* Program to find sum of series: 1 + x2/!2 + x4/!4 + x6/!6 ………… ( Cos x ) */
#include <stdio.h>
float xpower(int j, int x)
{
int pwr = 1;
for(int i = 1; i <= j; i++)
pwr = pwr*x;
return pwr;
}
float xfactorial(int k)
{
if (k == 1)
return 1;
int fact = 1;
for(int i = 1; i <= k; i++)
fact = fact * i;
//printf("factorial of %d is %d\n", k, fact);
return fact;
}
float SumOfSeries(int steps, int x)
{
float result = 0;
float power;
float factorial;
int i, j;
/* here i will be used to run loop 5 times to get 5 elements and j is used to match the pattern 1+2 for each element in series */
for(int i = 1, j = 0; i <= steps; i++, j = j+2)
{
power = xpower(j, x);
factorial = xfactorial(j);
result = result + power/factorial;
printf("result is %.2f\n", result
); }
return result;
}
/* Main Function Begins Here */
int main()
{
int x;
int steps;
float result;
printf("Enter a series steps and X: "); scanf("%d %d", &steps
, &x
);
result = SumOfSeries(steps, x);
printf("SumOfSeries is %.2f\n", result
); }
/* Pending */
LyogUHJvZ3JhbSB0byBmaW5kIHN1bSBvZiBzZXJpZXM6IDEgKyB4Mi8hMiArIHg0LyE0ICsgeDYvITYg4oCm4oCm4oCm4oCmICAoIENvcyB4ICkgKi8KCiNpbmNsdWRlIDxzdGRpby5oPgoKZmxvYXQgeHBvd2VyKGludCBqLCBpbnQgeCkKewoJaW50IHB3ciA9IDE7Cglmb3IoaW50IGkgPSAxOyBpIDw9IGo7IGkrKykKCQlwd3IgPSBwd3IqeDsKCQoJcmV0dXJuIHB3cjsKfQoKZmxvYXQgeGZhY3RvcmlhbChpbnQgaykKewoJaWYgKGsgPT0gMSkKCQlyZXR1cm4gMTsKCQoJaW50IGZhY3QgPSAxOwoJZm9yKGludCBpID0gMTsgaSA8PSBrOyBpKyspCgkJZmFjdCA9IGZhY3QgKiBpOwoJCgkvL3ByaW50ZigiZmFjdG9yaWFsIG9mICVkIGlzICVkXG4iLCBrLCBmYWN0KTsKCXJldHVybiBmYWN0Owp9CgkKCQpmbG9hdCBTdW1PZlNlcmllcyhpbnQgc3RlcHMsIGludCB4KQp7CglmbG9hdCByZXN1bHQgPSAwOwoJZmxvYXQgcG93ZXI7CglmbG9hdCBmYWN0b3JpYWw7CglpbnQgaSwgajsKCQoJLyogaGVyZSBpIHdpbGwgYmUgdXNlZCB0byBydW4gbG9vcCA1IHRpbWVzIHRvIGdldCA1IGVsZW1lbnRzIGFuZCBqIGlzIHVzZWQgdG8gbWF0Y2ggdGhlIHBhdHRlcm4gMSsyIGZvciBlYWNoIGVsZW1lbnQgaW4gc2VyaWVzICovCglmb3IoaW50IGkgPSAxLCBqID0gMDsgaSA8PSBzdGVwczsgaSsrLCBqID0gaisyKQoJewoJCXBvd2VyID0geHBvd2VyKGosIHgpOwoJCWZhY3RvcmlhbCA9IHhmYWN0b3JpYWwoaik7CgkJCgkJcmVzdWx0ID0gcmVzdWx0ICsgcG93ZXIvZmFjdG9yaWFsOwoJCQoJCXByaW50ZigicmVzdWx0IGlzICUuMmZcbiIsIHJlc3VsdCk7Cgl9CglyZXR1cm4gcmVzdWx0Owp9CgovKiBNYWluIEZ1bmN0aW9uIEJlZ2lucyBIZXJlICovCmludCBtYWluKCkKewoJaW50IHg7CglpbnQgc3RlcHM7CglmbG9hdCByZXN1bHQ7CgkKCXByaW50ZigiRW50ZXIgYSBzZXJpZXMgc3RlcHMgYW5kIFg6ICIpOwoJc2NhbmYoIiVkICVkIiwgJnN0ZXBzLCAmeCk7CgkKCXJlc3VsdCA9IFN1bU9mU2VyaWVzKHN0ZXBzLCB4KTsKCXByaW50ZigiU3VtT2ZTZXJpZXMgaXMgJS4yZlxuIiwgcmVzdWx0KTsKfQoKLyogUGVuZGluZyAqLw==