编程实现:求1+1/2!+1/3!+...+1/n!,直到使最后一项1/n!小于10-4。

编程实现:求1+1/2!+1/3!+...+1/n!,直到使最后一项1/n!小于10-4。
C语言编程

这是在求e吧。

#include <stdio.h>

#define precision 0.0001

int fact(int n) {
    if (n==1) return 1;
    return n* fact(n-1);
}

int main() {
    double sum=0, item=1;
    int i=1;

    while ((item=1.0/fact(i))>precision) {
        i++;
        sum += item;
    }

    printf("%.16f", sum);
}

追问

兄弟你好 我想问下求e是啥意思

这道题是我期末考试范围题

追答

我错了,光看后面.71828了,忘了看前面,结果是171828

追问

嗯 我知道自然底数e

我是不明白这个题为什么要求e

这个题和求e有什么关系。

题目中也没设计到和e有关的东西啊

追答

不是。求e的公式是:e=1+1/1! + 1/2! + 1/3! + ... + 1/n!
这个程序就是按这个公式来求结果的。(你给的公式里,好像少写了1)

追问

嗯谢谢兄弟 不过题目我没有抄错 那么在少了个写了个一的情况下 你给我的答案还是正确的对吧

追答

正确。没看我的运算结果,因为少了个1,所以结果变成了1.7182...,而不是2.7182...

追问

嗯好的谢谢你了兄弟 以后还要多多请教你了

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答