这个怎么搞啊,有没有同志看一下

这个怎么搞啊,有没有同志看一下

问题描述:

输入一个正整数n,用3种方法分别计算下式的和(保留4位小数)。

e=1+1/1!+1/2!+1/3!+ .......+1/n!

要求:定义和调用函数fact(n)计算n的阶乘。

【输入形式】

从键盘输入一个正整数n。

【输入输出样例1】(下划线部分表示输入)

Input n: 10

e=2.7183

【输入输出样例2】(下划线部分表示输入)

Input n: 3

e=2.6667



float fact(n)
{
    int sum=1;
    while(n)
        sum*=n--;
    return (float)sum;
}
int main()
{
    int n;
    float res=0.f;
    printf("Input n: ");
    scanf("%d",&n);
    
    for(int i=0;i<=n;++i)
        res += 1.0f/fact(i);
    
    printf("e=%.4f",res);
    
    return 0;
}