/* Program to find sum of series: x – x3/!3 + x5/!5 – x7/!7 ………… ( Sin 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;
for(int i = 1; i <= steps; i = i+2)
{
float power = xpower(i, x);
float factorial = xfactorial(i);
/* the below condition defines the sign */
if(i % 2 != 0)
result = result + power/factorial;
else
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
); }
LyogUHJvZ3JhbSB0byBmaW5kIHN1bSBvZiBzZXJpZXM6IHgg4oCTIHgzLyEzICsgeDUvITUg4oCTIHg3LyE3IOKApuKApuKApuKApiAgKCBTaW4geCApICovCgojaW5jbHVkZSA8c3RkaW8uaD4KCmZsb2F0IHhwb3dlcihpbnQgaiwgaW50IHgpCnsKCWludCBwd3IgPSAxOwoJZm9yKGludCBpID0gMTsgaSA8PSBqOyBpKyspCgkJcHdyID0gcHdyKng7CgkKCXJldHVybiBwd3I7Cn0KCmZsb2F0IHhmYWN0b3JpYWwoaW50IGspCnsKCWlmIChrID09IDEpCgkJcmV0dXJuIDE7CgkKCWludCBmYWN0ID0gMTsKCWZvcihpbnQgaSA9IDE7IGkgPD0gazsgaSsrKQoJCWZhY3QgPSBmYWN0ICogaTsKCQoJLy9wcmludGYoImZhY3RvcmlhbCBvZiAlZCBpcyAlZFxuIiwgaywgZmFjdCk7CglyZXR1cm4gZmFjdDsKfQoJCgkKZmxvYXQgU3VtT2ZTZXJpZXMoaW50IHN0ZXBzLCBpbnQgeCkKewoJZmxvYXQgcmVzdWx0ID0gMDsKCQoJZm9yKGludCBpID0gMTsgaSA8PSBzdGVwczsgaSA9IGkrMikKCXsKCQlmbG9hdCBwb3dlciA9IHhwb3dlcihpLCB4KTsKCQlmbG9hdCBmYWN0b3JpYWwgPSB4ZmFjdG9yaWFsKGkpOwoJCQoJCS8qIHRoZSBiZWxvdyBjb25kaXRpb24gZGVmaW5lcyB0aGUgc2lnbiAqLwoJCWlmKGkgJSAyICE9IDApCgkJCXJlc3VsdCA9IHJlc3VsdCArIHBvd2VyL2ZhY3RvcmlhbDsKCQllbHNlCgkJCXJlc3VsdCA9IHJlc3VsdCAtIHBvd2VyL2ZhY3RvcmlhbDsKCQkKCQlwcmludGYoInJlc3VsdCBpcyAlLjJmXG4iLCByZXN1bHQpOwoJfQoJcmV0dXJuIHJlc3VsdDsKfQoKLyogTWFpbiBGdW5jdGlvbiBCZWdpbnMgSGVyZSAqLwppbnQgbWFpbigpCnsKCWludCB4OwoJaW50IHN0ZXBzOwoJZmxvYXQgcmVzdWx0OwoJCglwcmludGYoIkVudGVyIGEgc2VyaWVzIHN0ZXBzIGFuZCBYOiAiKTsKCXNjYW5mKCIlZCAlZCIsICZzdGVwcywgJngpOwoJCglyZXN1bHQgPSBTdW1PZlNlcmllcyhzdGVwcywgeCk7CglwcmludGYoIlN1bU9mU2VyaWVzIGlzICUuMmZcbiIsIHJlc3VsdCk7Cn0KCg==