注册 登录
编程论坛 C++教室

求数学常数e,pta有一个测试点一直过不去

lauxy23 发布于 2021-03-21 00:19, 1614 次点击
下面是我写的代码,三个测试点,最后一个过不去。
程序代码:
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;

int fac(int n)
{
    int i,f=1;
    for (i=1;i<=n;i++)
        f*=i;
    return f;
}

int main(void)
{
    int i,n;
    double e=1;
    cin >> n;
    for (i=1;fac(i)<=pow(10,n);i++) {
        e+=(double)1/fac(i);
    }
    cout << fixed << setprecision(n) <<e;

    return 0;
}


[此贴子已经被作者于2021-3-21 00:36编辑过]

3 回复
#2
lauxy232021-03-21 00:22
题目要求见我头像。


[此贴子已经被作者于2021-3-21 00:28编辑过]

#3
lauxy232021-03-21 00:26
传不了图片,我把题目要求放在头像上了。
#4
rjsp2021-03-22 08:39
既然 n 最大是10,那你就输入 10,然后看看 int fac(10) 返回的值是不是 10的阶乘,有没有溢出。
1