信息学奥赛一本通 1092:求出e的值

目录


代码呈上:

#include <iostream>
#include <cstdio>
using namespace std;
int main(){
    int n;
    cin>>n;
    double s=1,z=1;
    for(int i=1;i<=n;i++){
        s=s*i;
        z+=1.0/s;
    }
    printf("%.10f",z);
    return 0;
}

题目:

1092:求出e的值

时间限制: 1000 ms         内存限制: 65536 KB
提交数: 55062     通过数: 29512
【题目描述】
利用公式

e=1+1/1!+1/2!+1/3!+...+1/n!

求e的值,要求保留小数点后10位。

【输入】
输入只有一行,该行包含一个整数n(2≤n≤15),表示计算e时累加到1n!。

【输出】
输出只有一行,该行包含计算出来的e的值,要求打印小数点后10位。

【输入样例】

10


【输出样例】

2.7182818011

题目解析:

用for循环求出阶乘数后,趁热打铁,求出部分e值,再用for循环相加,即可求出答案。

tip:要注意int和double的定义

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值