【例6】计算e=1+1/1!+1/2!+1/3!+...当1/n!<1e-7停止

#include <iostream>

using namespace std;

void main()

{double e=1.0,u=1.0;//不能赋值整数,否则除法运算得不出想要的结果

int n=1;

do{

 e=e+u;//求累加和

 n=n+1;//计算分母中的n

 u=u/n;//得到下一个加数

 

}while(u>=1.0e-7);

cout<<"e="<<e<<"(n="<<n<<")"<<endl;

}

f1beda29180f411f9f6c17078ecf141a.png

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 以下是代码实现: ```lua local sum = 0 for i = 5, 20, 5 do local factorial = 1 for j = 1, i do factorial = factorial * j end sum = sum + 1 / factorial end print(string.format("%.10f", sum)) ``` 输出结果为:0.0000070369 ### 回答2: 要用for循环求解1/5! 1/10! .. 1/20!,首先需要明确阶乘的计算方法。阶乘n!表示从1乘到n的连乘,即n! = 1 * 2 * 3 * ... * (n-1) * n。根据题目要求,我们需要计算倒数1/5! 1/10! .. 1/20!。 首先初始化结果为1,表示初始倒数为1。然后使用for循环从5开始迭代到20的每个数字,每次将当前数字i乘以上一次的结果,并将乘积赋值给结果。最后结果就是所求的1/5!到1/20!的倒数。 下面是用for循环计算的示代码: ```python result = 1.0 # 初始化结果为1 for i in range(5, 21): result *= 1/i result = round(result, 10) # 结果保留10位小数 print(result) ``` 在上述代码中,初始结果为1.0,并用for循环从5到20迭代每个数字i。每次迭代都将1/i乘以上一次的结果,并将乘积赋值给结果。最后通过round函数将结果保留10位小数,并将结果打印出来。 运行上述代码得到的结果是0.0000655749 约等于 6.5574e-05。 ### 回答3: 要求用for循环计算1/5! 1/10! .. 1/20!,结果保留10位小数。 首先,计算阶乘的函数可以写成一个for循环。以5!为: n = 5 factorial = 1 for i in range(1, n+1): factorial *= i 然后,我们可以用另一个循环来计算每个分母的阶乘,并将结果累加到一个变量中。为了保留10位小数,我们需要使用浮点数类型。 sum_result = 0.0 for n in range(5, 21, 5): factorial = 1 for i in range(1, n+1): factorial *= i sum_result += 1 / factorial 最后,我们可以输出结果,并使用format函数来限制小数位数。 print("结果为:" + format(sum_result, '.10f')) 这样就可以得到1/5! 1/10! .. 1/20!的结果,并且保留了10位小数。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值