利用
编程计算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.各个阶乘项的乘法(循环)
所以很容易想到循环的嵌套,所以大的框架为第一循环作为加法,小的框架被包含在大框架也就是第一循环里面,为各个阶乘项的运算,也为循环,每一项都需要一个循环,而大框架循环正好可以做到,最后在大循环内小循环和打印条件并列,即可实现最终效果
(解法不唯一,仅供参考)
[C语言] 利用阶乘公式编程计算e的近似值 直到最后一项的绝对值小于10-5时为止 输出e的值并统计累加的项数。输出e值要求小数点后必须保留6位有效数字(四舍五入) 不足补零。