鱼C论坛

 找回密码
 立即注册
查看: 1844|回复: 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 项级数展开:

  1. #include <stdio.h>

  2. int main()
  3. {
  4.     int n = 100000000;
  5.     int input = 0;
  6.     double e = 1.0, f = 1.0;
  7.     for (int i = 1; i <= n; i++)
  8.     {
  9.         f *= i;
  10.         e += 1.0 / f;
  11.     }
  12.     printf("%.12lf\n", e);
  13.     scanf_s("%d",&input);
  14.     return 0;
  15. }
复制代码

首先,我们设置了一个变量 n,用于控制级数展开的项数。在本例中,我们使用了 1000 项。

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

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

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

如果输入有误,比如输入的 n 不是正整数,可以输出 "input error!"。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-4-9 17:52:32 | 显示全部楼层
此帖仅作者可见
小甲鱼最新课程 -> https://ilovefishc.com

使用道具 举报

发表于 2023-4-9 17:55:26 | 显示全部楼层
此帖仅作者可见
小甲鱼最新课程 -> https://ilovefishc.com

使用道具 举报

发表于 2023-4-9 18:14:39 | 显示全部楼层
此帖仅作者可见
小甲鱼最新课程 -> https://ilovefishc.com

使用道具 举报

发表于 2023-4-9 20:08:41 | 显示全部楼层    本楼为最佳答案   
此帖仅作者可见
小甲鱼最新课程 -> https://ilovefishc.com

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-22 19:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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