| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 935 人关注过本帖
标题:求阶层的问题
只看楼主 加入收藏
爱在天涯海角
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2011-10-20
结帖率:20%
收藏
 问题点数:0 回复次数:3 
求阶层的问题
1+1/1!+1/2!+1/3!+.....+1/n!
不会做啊,有人会吗?帮帮我被
2011-10-24 21:50
guang0725
Rank: 2
等 级:禁止访问
帖 子:70
专家分:70
注 册:2011-9-5
收藏
得分:0 
//1+1/1!+1/2!+1/3!+.....+1/n!
 #include"stdio.h"
 #include"conio.h"
 main()
 {
     int jc(int b);
     int a,c,n;
    float sum=1.00;
     printf("input one number:");
     scanf("%d",&n);
     for(a=1;a<=n;a++)
     {
         c=jc(a);
         sum+=1/(float)c;
     }
     printf("%f\n",sum);
 }
 int jc(int b)
 {
     int a,sun=1;
     for(a=1;a<=b;a++)
     sun*=a;
     return(sun);
 }
2011-10-25 15:21
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
这不就是求自然对数的底e的值么。楼上的代码效率不够高,而且精度也不够。
下面的代码可以得到15位有效数字。也只需前18项就够了,更多的项数对double型没意义。
这题的意义在于求得更高的精度。试着求一下小数点后10万位吧。
程序代码:
#include<stdio.h>
int main()
{
    double a = 1, t = 1;
    int i;
    for(i = 1; i < 18; i++)
    {
        t /= i;
        a += t;
    }
    printf("%.20f\n", a);
    return 0;
}



重剑无锋,大巧不工
2011-10-25 18:25
GeBron
Rank: 2
等 级:论坛游民
帖 子:23
专家分:33
注 册:2011-4-14
收藏
得分:0 
程序代码:
/*求n!的函数*/
int fac(int n)
{
    int s;

    if (n == 1 || n == 0)
        s = 1;
    else
        s = fac(n-1) * n;
    
    return s;
}
2011-10-25 22:09
快速回复:求阶层的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.058764 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved