tfsf.net
当前位置:首页>>关于C语言:e=1+1/1!+1/2!+...+1/n!,误差小于0.00001。的资料>>

C语言:e=1+1/1!+1/2!+...+1/n!,误差小于0.00001。

#include"stdio.h" main() { float n=1,m=1,temp; m*=n; temp=1/m; while(temp>0.00001) { n++; m*=n; temp=1/m; } printf("%f",n+1); } 一共10项

算法说明 累加形式:V=V+e 连乘形式:V=V*e 其中:V是变量,e是递增表达式.累加和连乘一般通过循环结构来实现.注意:需在执行循环体前对变量V赋初值.一般的,累加时置初值0;连乘时置初值为1.举例 求N!的结果.Private

搜一下:C语言编程:e=1+1/!+1/2!+1/3!+……+1/n! 要求用递推解决.两项之差小于0.0

#include main() { int n,i,b; long a=1; double e,x; printf("input n:"); scanf("%d",&n); for(i=1;i { a*=i; e+=1.0/a; } printf("e=%lf",e); x=e-(int)e; printf(" input bit b(1~14):");/*这边给您输出最多14位的小数*/ scanf("%d",&b); printf("is %ld",(int)(x*pow(10,b))); } 精确小数的 可以加 do { }while(x的代码 希望对你有所帮助!

int a=1,b,n=1,nAn; double e=1; while(nAn<=1e6) //这里nAn的值是多少,没有赋值就使用的变量

1+1=2

publicnbsp;classnbsp;Testnbsp;{nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;//求n的阶乘nbsp;publicnbsp;staticnbsp;intnbsp;fn(intnbsp;n){nbsp;nbsp;nbsp;if(nnbsp;amp;lt;=nbsp;1){nbsp;nbsp;nbsp;returnnbsp;1;nbsp;nbsp;}nbsp;nbsp;

你犯了个很简单的错误, float e=1.0,n=1.0;这里定义了一个变量e,那么 while ((1/n)-( 1/(n+1) )<= (1e-5))这里的e是指数还是变量e呢?你就<=0.00001就行啦

#include<stdio.h> void main(void) { float e=1,t=1; do{ e+=1/t; t*=t+1; }while(t>0.00001); printf("%f",e); getchar(); }

给你的是伪代码//n是加多少个数 void Add(int n) { double e=1.00000; DecimalFormat df=new DecimalFormat("#.00000"); for(int i=2;i<n;i++) { e+=df.format(1/i); } return e; }

相关文档
网站首页 | 网站地图
All rights reserved Powered by www.tfsf.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com