递推计算阶乘倒数并累加,得到截断的 e 级数近似值。
OJ: noi_openjudge
题目 ID: ch0105-35
难度:入门
标签:循环数学递推python
日期: 2026-07-30 23:01
题意
根据
思路
初始和为常数项 factorial,再加入 1 / factorial。最后使用 f"{total:.10f}" 按题意固定保留十位小数。
代码
Python代码
python
limit = int(input())
factorial = 1
total = 1.0
for number in range(1, limit + 1):
factorial *= number
total += 1 / factorial
print(f"{total:.10f}")C++代码
cpp
#include <cstdio>
int main(){
int n;
scanf("%d",&n);
double i,s = 1;
double sum=1;
for (i=1;i<=n;i++){
s = s*i;
sum += 1.0/s;
}
printf("%0.10f\n",sum);
return 0;
}复杂度
时间复杂度为
总结
同一个阶乘递推既可用于整数和,也可用于它的倒数级数。