B2079 求出 e 的值 题解

· · 题解

B2079 求出 e 的值 题解

小数存储 + 循环结构

#include <bits/stdc++.h>
using namespace std;
int f(int n){//取n的阶乘 
    if(n == 1) return n;
    return n * f(n-1);
}
int main(){
    int n; cin >> n;
    long double e = 1.0,ans = 1.0;//用ans累加e 
    for(int i = 1;i <= n;i++){
        e *= i;//也就是记录i的阶乘
        ans += 1/e;
    }
    printf("%.10Lf",ans);//long double -> %Lf
    return 0;
} //Ade