| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6202 人关注过本帖
标题:计算1!+2!......+100!的值的程序怎么编写
只看楼主 加入收藏
lol
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2010-1-23
收藏
得分:0 
回复 8楼 liuge1129
到10就是我那么写的吧,而且我怎么没见到符号。你把i<=100改成10就对了。
话说我的就是1!+2!+...+10!扩大精度改的(貌似还不能这么改)自己汗个。
程序代码:
#include<stdio.h>
void main()
{
    int i,f,sum;
    f=1;
    sum=0;
    for(i=1;i<=10;i++)
    {
        f*=i;
        sum+=f;
    }
    printf("1!+2!+...+10!=%d\n",sum);
}
改下数据类型,看着顺眼些。

2010-01-31 22:03
kwxx
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:309
专家分:913
注 册:2009-5-11
收藏
得分:0 
不是溢出的问题,是有效数位不够的问题。不用数组模拟计算1!+100!肯定有问题的。
2010-01-31 22:04
Devil_W
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:9
帖 子:1160
专家分:1797
注 册:2009-9-14
收藏
得分:0 
以下是引用kwxx在2010-1-31 22:04:02的发言:

不是溢出的问题,是有效数位不够的问题。不用数组模拟计算1!+100!肯定有问题的。


我觉得就是溢出的问题,有效位数难道不是因为溢出。

期待你的数组模拟code,看结果跟我前面贴的一样不一样。
2010-01-31 22:11
曼珠沙华
Rank: 2
来 自:广东
等 级:论坛游民
帖 子:121
专家分:98
注 册:2009-5-21
收藏
得分:0 
long long num;
这样定义,应该就不会了吧。。。
或者直接用数组啊

走过了,却留下了痕迹。伤过了,却是一种无奈。人生只不过是一种擦肩而过的过程。
2010-01-31 22:11
Devil_W
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:9
帖 子:1160
专家分:1797
注 册:2009-9-14
收藏
得分:0 
以下是引用曼珠沙华在2010-1-31 22:11:46的发言:

long long num;
这样定义,应该就不会了吧。。。
或者直接用数组啊



我还没去看你的什么图书馆里系统。

看你这么说,我知道没必要看了。
2010-01-31 22:12
kwxx
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:309
专家分:913
注 册:2009-5-11
收藏
得分:0 
呵呵,仅到10就没问题了。
2010-01-31 22:17
Devil_W
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:9
帖 子:1160
专家分:1797
注 册:2009-9-14
收藏
得分:0 
以下是引用kwxx在2010-1-31 22:17:54的发言:

呵呵,仅到10就没问题了。



你不准备贴code么?

算到10有什么意思。
2010-01-31 22:27
jiangwu10057
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:341
专家分:667
注 册:2009-3-25
收藏
得分:0 
回复 17楼 Devil_W
我也想知道怎么解决我记得以前有人解决了·
2010-01-31 22:32
Devil_W
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:9
帖 子:1160
专家分:1797
注 册:2009-9-14
收藏
得分:0 
我在想是不是真的要验证我说的


90%以上的都写不出。。。
2010-01-31 23:21
Devon_Ye
Rank: 4
来 自:广东
等 级:业余侠客
帖 子:124
专家分:282
注 册:2010-1-7
收藏
得分:0 
先贴个阶乘的代码
#include<stdio.h>
#include<string.h>
const int maxn=3000;
int f[maxn];
int main()
{int i,j,n;
    scanf("%d",&n);
    memset(f,0,sizeof(f));
    f[0]=1;
    for(i=2;i<=n;i++)
{int c=0;
    for(j=0;j<maxn;j++)
    {int s =f[j]*i+c;
        f[j]=s%10;
        c=s/10;
    }
}
for(j=maxn-1;j>=0;j--)
if(f[j]) break;
for(i=j;i>=0;i--)
printf("%d",f[i]);
printf("\n");
return 0;
}
2010-01-31 23:25
快速回复:计算1!+2!......+100!的值的程序怎么编写
数据加载中...
 
   



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

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