[C语言] 利用阶乘公式编程计算e的近似值,直到最后一项的绝对值小于10-5时为止,输出e的值并统计累加的项数。输出e值要求小数点后必须保留6位有效数字(四舍五入),不足补零。

利用

编程计算e的近似值,直到最后一项的绝对值小于10-5时为止,输出e的值并统计累加的项数。输出e值要求小数点后必须保留6位有效数字(四舍五入),不足补零。

输入:

无输入。

输出:

输出e的值和累加的项数,两项之间用一个空格隔开。输出e值要求小数点后必须保留6位有效数字(四舍五入),不足补零。

数据范围

输出double范围的浮点数和int范围的整数

#include <stdio.h>
int main() {
	double sum=1,i=1;  //sum表示为最开始的1项 i则为while循环中的系数
	int type=1,x,y;    //type用来控制循环的终止
	while(type){
		double j=1;     //j作为局部变量在循环里设出,否则j的初始值会随着循环增大
		for(x=1;x<=i;x++){        //x作为for循环的参考,与while的i嵌套
			j=j*x;                //                            |
			y=x;      //这里将y单独赋值为x作为项数,否则          |
		}             //直接用x会因为多走一遍while循环而比实际大1 |
		if((1.0/j)>1e-5){       //此处为分支条件,按题中要求给出  |
			sum=sum+(1.0/j);     //                             |
			i++;                         //=====================↑
		}
		else{                           //若满足条件则打印,并使type=0终止循环
			printf("%.6lf %d",sum,y);
			type=0;
		}
	}
	return 0;
}

代码解析见代码注释

基本思路逻辑:

该公式包括两部分:1.加法(循环)2.各个阶乘项的乘法(循环)

所以很容易想到循环的嵌套,所以大的框架为第一循环作为加法,小的框架被包含在大框架也就是第一循环里面,为各个阶乘项的运算,也为循环,每一项都需要一个循环,而大框架循环正好可以做到,最后在大循环内小循环和打印条件并列,即可实现最终效果

(解法不唯一,仅供参考)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值