鱼C论坛

 找回密码
 立即注册
查看: 1415|回复: 4

[已解决]c语言题求助

[复制链接]
发表于 2023-4-9 17:28:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 mo_on 于 2023-4-9 18:12 编辑

计算 e 的近似值(e≈2.71828 18284 59……),e的计算公式为 e=1+1/1!+1/2!+1/3!+...+1/(n-1)!

输出格式:

"%.12lf"



"input error!"


【输入形式】
输入n
【输出形式】

输出e
最佳答案
2023-4-9 20:08:41
以下是使用 C 语言计算 e 的近似值的代码,使用了 100000000 项级数展开:
#include <stdio.h>

int main() 
{
    int n = 100000000;
    int input = 0;
    double e = 1.0, f = 1.0;
    for (int i = 1; i <= n; i++) 
    {
        f *= i;
        e += 1.0 / f;
    }
    printf("%.12lf\n", e);
    scanf_s("%d",&input);
    return 0;
}
首先,我们设置了一个变量 n,用于控制级数展开的项数。在本例中,我们使用了 1000 项。

然后,我们初始化了变量 e 和 f,分别表示 e 的近似值和阶乘的分母。由于第一项为 1,因此我们将 e 初始化为 1。由于 0! = 1,因此我们将 f 初始化为 1。

接下来,我们使用一个循环计算级数展开的每一项。在每次迭代中,我们将 f 乘以迭代计数器 i,得到当前项的分母,然后将 1 除以该分母,得到当前项的值。最后,我们将该值加到 e 中。

最后,我们使用 printf 函数输出 e 的近似值,格式化字符串为 "%.12lf",表示输出一个双精度浮点数,保留小数点后 12 位。

如果输入有误,比如输入的 n 不是正整数,可以输出 "input error!"。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-4-9 17:52:32 | 显示全部楼层
此帖仅作者可见
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com

使用道具 举报

发表于 2023-4-9 17:55:26 | 显示全部楼层
此帖仅作者可见
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com

使用道具 举报

发表于 2023-4-9 18:14:39 | 显示全部楼层
此帖仅作者可见
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com

使用道具 举报

发表于 2023-4-9 20:08:41 | 显示全部楼层    本楼为最佳答案   
此帖仅作者可见
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-7 15:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表