使用函数求e的近似值(PTA)C语言
自然常数e可以用级数1+1/1!+1/2!+⋯+1/n!来近似计算。本题要求实现一个计算阶乘的简单函数,使得可以利用该函数,对给定的非负整数n,求该级数的前n+1项和。
函数接口定义:
double fact( int n );
其中n是用户传入的参数,函数返回n的阶乘。
裁判测试程序样例:
#include <stdio.h>
double fact( int n );
int main(void)
{
int i, n;
double sum;
scanf("%d", &n);
sum = 1;
for(i = 1; i <= n; i++){
sum = sum + 1.0/fact(i);
}
printf("%f\n", sum);
return 0;
}
/* 请在这里填写答案 */
输入样例:
10
输出样例:
2.718282
代码:
double fact(int n){
double num=1;
int i;
for(i=1;i<=n;i++){
num*=i;
}
return num;
}
虽然运行结果与输出样例不完全一样,但能全通过测试点。
这两个值实际上是非常接近的,它们之间的差异可能是由于浮点数的内部表示和舍入造成的。在大多数情况下,这种微小的差异是可以接受的,尤其是在涉及到浮点数的计算时。
裁判测试程序通常会有一定的容错范围,允许结果在一定的误差范围内被认为是正确的。这意味着,只要计算结果在某个合理的误差范围内接近预期值,它通常就会被认为是正确的,即使它不完全匹配样例输出。
如果要使运行结果与输出样例完全一致,需要精准的控制输出格式,如printf("%.6f\n", sum);
愿我们都能成为我们想要去成为的人!
祝我们永远不缺全盘推翻重来的勇气!
愿我们长歌有和,独行有灯!