栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

e=1的阶乘+1/2的阶乘+1/3的阶乘+...+1/n的阶乘,直到最后一项小于1e-5

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

e=1的阶乘+1/2的阶乘+1/3的阶乘+...+1/n的阶乘,直到最后一项小于1e-5

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;
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/717775.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号