bycj.net
当前位置:首页 >> C语言中E=1+1%1!+1%2!+1%3!.......1%n!(精度为10... >>

C语言中E=1+1%1!+1%2!+1%3!.......1%n!(精度为10...

LZ 你题目错了吧,应该是 1+1/1!+1/2!+1/3!+……1/n!:程序如下:#include "stdio.h"main(){ double e=0; int n,i,t=1; for(n=1;;n++) { for(i=1;i 评论0 0 0

#include main() int n,k; float e; n=1;e=0;k=1; while(n

#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的代码 希望对你有所帮助!

楼主你好!首先你的公式我认为是错的!前面第一项漏加了个1 正确的公式为:e=1+1/1!+1/2!+1/3!++1/n!代码实现如下:#include<stdio.h> int fun(int n) { if(n == 1)return 1; return n*fun(n-1); } int main() { double sum =1.0 ; int i = 1; while((1.0/

1.while(1.0/f>=10e-6)2.printf("e=%f\n",e);要显示小数位的话,默认是6位.

#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项

似乎有些难.因为要算到前50项需要打高精度(阶乘太大已经爆了long long)我的程序只能算一定范围内的#include using namespace std; int n; double ans=0; int main(){ int i; long long p=1; scanf("%d",&n); //输入要到多少项 for(int i=1;i p=p*i; //p表示 i!因为每次都乘上 i,所以每次乘起来最后就是i! ans+=(double)1/p; //将算的 1/i!累加起来 } printf("%.10lf",ans); //保留10位小数输出 return 0; }

#include int main() { double frac=1.0,x=1.0,num=1.0,e=0.0; while(x>=1e-6) { e+=x; num++; frac*=num; x=1.0/frac; } printf("e=:%lf",e); }

把n设为double类型

#include int main() {/*注意n不能太大,否则会溢出*/ int n; scanf("%d",&n); double e=0; int h=1;/*分母*/ int i;/*计数器*/ for(i=1;i h*=i; e+=(double)i/(double)h; } printf("%.2lf\n",e); return 0; }

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