合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。💪🏻
一、题目描述 ⭐️
练习4-7 求e的近似值
自然常数 e 可以用级数 1+1/1!+1/2!+⋯+1/n!+⋯ 来近似计算。本题要求对给定的非负整数 n,求该级数的前 n+1 项和。
输入格式:
输入第一行中给出非负整数 n(≤1000)。
输出格式:
在一行中输出部分和的值,保留小数点后八位。
输入样例:
10
输出样例:
2.71828180
二、代码(C语言)⭐️
#include <stdio.h> // 包含标准输入输出库,用于使用scanf和printf等函数// 定义一个递归函数,计算n的阶乘
double fact(int n) {// 如果n为0,返回1(0的阶乘为1)// 否则,返回n乘以(n-1)的阶乘return n == 0 ? 1 : n * fact(n - 1);
}int main() {int n; // 定义变量n,用于存储用户输入的整数scanf("%d", &n); // 从用户输入中读取一个整数,赋值给ndouble sum = 0.0; // 定义变量sum,用于存储累加结果,初始值为0.0// 使用for循环计算级数的和for (int i = 0; i <= n; i++) {sum += (1.0 / fact(i)); // 将1除以i的阶乘的值累加到sum中}// 输出sum的值,保留8位小数printf("%.8f", sum);return 0; // 程序正常结束
}
【补充 ❀】整数除法 和 浮点数除法 的区别,请查看我的另一篇文章。