1和2不知道为什么有时会不一样,明明只是名字变了变。
思路两个
1.
求出阶乘。
1/阶乘。
求和。
2.
1/n!=1/(n-1)/n;
后一项的阶乘等于前一项除以后一项的标码。
#include#include #include int main() { printf("1."); double e=1.0,term; int n,count=1; long fac=1; for(n=1;fabs(term)>=1e-5;n++) { fac=fac*n; term=1.0/fac; e=e+term; count++; } printf("%f %dn",e,count); printf("2."); double e0=1.0,term0; int n0,count0=1; long j=1; for(n0=1;fabs(term0)>=1e-5;n0++) { j=j*n0; term0=1.0/j; e0=e0+term0; count0++; } printf("%f %dn",e0,count0); printf("3."); int n1=1; double e1=1.0,term1=1.0; do{ term1=term1/n1; e1=e1+term1; n1++; }while(fabs(term1)>=1e-5); printf("%f %dn",e1,n1); printf("4."); int n2=1; double e2=1.0,term2=1.0; while(fabs(term2)>=1e-5) { term2=term2/n2; e2=e2+term2; n2++; } printf("%f %dn",e2,n2); printf("5."); int n3=1; double e3=1,term3=1; while(fabs(term3)>=1e-5) { term3=term3/n3; e3=e3+term3; n3++; } printf("%f %d",e3,n3); return 0; }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)