/***************************************************************
累加(C語言)
AUTHOR:liuyongshui
DATE:********
***************************************************************/
/*
問題八: f=1!-1/2!+1/3!-1/4!+...+1/n!(n為一定大的數,太大了會溢出)
*/
#include <stdio.h>
void f(int m); //原函數聲明
int main()
{
int n;
printf("請輸入一個數(不能太大):");
scanf("%d", &n);
f(n); //把n帶入f()函數
return 0;
}
// f()函數定義
void f(int m)
{
int i;
int j;
int s=1;
int k=1;
double sum=0.0;
for(i=1; i<=m; i++)
{
for(j=1; j<=i; j++)
{
s*=j; //計算i!
}
sum+=1.0/s*k; //sum=sum+1.0/s;
k=-1*k; //改變k的符號
s=1; //算完i!後,s賦值為1
}
printf("%lf\n", sum); //輸出結果
}