I think you should do similar like this.
int fact(int n)
if(n == 0)
return n * fact(n-1);
int sum = 1, delta = -1;
for(int i=2; i<=n; ++i)
sum += ((i / fact(i + 1)) * delta);
delta *= -1;
I didn't compile the above code. But I think it would help you.