| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6202 人关注过本帖
标题:计算1!+2!......+100!的值的程序怎么编写
只看楼主 加入收藏
liuge1129
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2010-1-31
结帖率:75%
收藏
已结贴  问题点数:20 回复次数:45 
计算1!+2!......+100!的值的程序怎么编写
新手入门 请教···
搜索更多相关主题的帖子: 编写 
2010-01-31 20:31
Devil_W
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:9
帖 子:1160
专家分:1797
注 册:2009-9-14
收藏
得分:5 
恩,我估计这里90%以上的人都写不出来这个阶层和。
2010-01-31 20:42
liuge1129
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2010-1-31
收藏
得分:0 
不会吧  这么夸张···
2010-01-31 20:45
神秘人
Rank: 2
等 级:论坛游民
帖 子:19
专家分:38
注 册:2010-1-31
收藏
得分:0 
我写了一个,但是发现错了,也麻烦高手指证一下,谢谢了!
#include <stdio.h>
int main( void )
{
    int i, j;
    int s = 0;
    int t = 1;
   
    for( i = 100; i >= 1; i-- )
    {   
        for( j = i; j >= 1; j-- )
        {
            t = t*j;
        }
        s = s + t;
    }
    printf( "%d\n", s );
    return 0;
}

人不知而不愠,不亦君子乎?
2010-01-31 21:09
lol
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2010-1-23
收藏
得分:0 
程序代码:
#include<stdio.h>
void main()
{
    long double i,f,sum;
    f=1;
    sum=0;
    for(i=1;i<=100;i++)
    {
        f*=i;
        sum+=f;
    }
    printf("1!+2!+...+100!=%.2f\n",sum);
}
应该是这样了。 不过结果真大看起来有点眼花。
我用长双精度的实数数据,因为这是我知道的最大范围数据类型了,也不知道对不对.

=============================================================================================
ps:Devil_W,这个方法又不难,用循环结构就行了。我也是最近几天才学会的。你说90%写不出是因为数据类型吗?
不是的话,是我这个小菜鸟水平有限,没发现这题的妙处,大家别笑话我。~
要是的话我就不敢苟同了。连我这刚学一个多礼拜的起步菜鸟都注意到了(虽然解决方法可能不对),别人自然可以解决的很好。

[ 本帖最后由 lol 于 2010-1-31 21:21 编辑 ]
2010-01-31 21:19
Devil_W
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:9
帖 子:1160
专家分:1797
注 册:2009-9-14
收藏
得分:0 
94269001683709979260859834124473539872070722613982672442938359305624678223479506023400294093599136466986609124347432647622826870038220556442336528920420940313


算到这个结果,你就多了。

你那算法能算到这个么,楼上的。
2010-01-31 21:29
heartnheart
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:335
专家分:1096
注 册:2009-7-10
收藏
得分:0 
回复 楼主 liuge1129
就是一个精度问题,先估计结果的范围,然后用数组模拟大数,关键在于用数组模拟大数的四则运算的算法
2010-01-31 21:47
liuge1129
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2010-1-31
收藏
得分:0 
回复 5楼 lol
你那结果有个负号是为什么
我这个题目其实搞错了  是1!+2!+......+10!的值  可以帮忙写下吗?
2010-01-31 21:50
lol
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2010-1-23
收藏
得分:0 
以下是引用Devil_W在2010-1-31 21:29:54的发言:

 
 
算到这个结果,你就多了。
 
你那算法能算到这个么,楼上的。
不能,看来我果然没看出这题的妙处。
顺便问下:直接扩大数据精度为什么不行呢?


[ 本帖最后由 lol 于 2010-1-31 21:56 编辑 ]
2010-01-31 21:50
段梦超
Rank: 2
等 级:论坛游民
帖 子:21
专家分:10
注 册:2009-12-20
收藏
得分:0 
是啊   怎样才能保证不会溢出
2010-01-31 21:51
快速回复:计算1!+2!......+100!的值的程序怎么编写
数据加载中...
 
   



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

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