MT1200常数e解题记录--知识点循环结构

MT1200常数e

常数e的值可以表示为无穷级数: e=1+1/1!+1/2! +1/3! +… 1/n!编写一个程序,计算e的值,其中n是用户输入的整数。输入不考虑0,负数或者其他特殊情况。

观察此题

我们想到要使用for循环

首先我们发现要实现阶乘n

这里是一个内置的嵌套for

实现代码很简单

for(j=1;j<=i;j++)
        {
           temp1=j*temp1;
        }

第二步我们构造外部的循环

意思是每一次我们都加上一个阶乘分之一

for (i = 1; i<=ch; i++)
    {
        temp1 = 1;

        for (j = 1; j <=i; j++)
        {
            temp1 = j * temp1;
        }
        e = e + (1.00 / temp1);

    }

但是我们注意笔者之前犯了一个错误也就是temp1忘记重新赋值

否则会出现第二次大循环的时候,temp1保存了第一次大循环里的数组,导致第二次大循环里的temp1会以第一次大循环的结果进行第二次小循环计算

所以我们写出实现代码

#include<stdio.h>
int main() 
{ 
    int ch,i,j,temp1;
    double e=1.0;
    scanf("%d",&ch);
    for(i=1;i<=ch;i++)
    {
        temp1=1;
        for(j=1;j<=i;j++)
        {
           temp1=j*temp1;
        }
        e=e+(1.0/temp1);
    }
    printf("%.2f",e);


    return 0; 
}

本题涉及知识点有循环结构使用和基本的输出输入知识

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值