| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 45809 人关注过本帖
标题:求1!+2!+3!+4!+……+20!
只看楼主 加入收藏
jiangwu10057
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:341
专家分:667
注 册:2009-3-25
收藏
得分:0 
我想超过-3.4e-38至3.4e38。
的数要用数组输出了或者说以字符串输出 了
当是···不会实现·······
2009-10-25 13:31
zqb7899
Rank: 4
等 级:业余侠客
帖 子:159
专家分:238
注 册:2009-10-16
收藏
得分:0 
回复 68楼 zqb7899
最后的正确答案应该是这样:
                          
1    1                       1
2    2                       3
3    6                       9
4    24                      33
5    120                     153
6    720                     873
7    5040                    5913
8    40320                   46233
9    362880                  409113
10   3628800                 4037913
11   39916800                43954713
12   479001600               522956313
13   6227020800              6749977113
14   87178291200             93928268313
15   1307674368000           1401602636313
16   20922789888000          22324392524313
17   355687428096000         378011820620313
18   6402373705728000        6780385526348313
19   121645100408832000      128425485935180313
20   2432902008176640000     2561327494111820313


[ 本帖最后由 zqb7899 于 2009-10-25 13:37 编辑 ]
2009-10-25 13:33
jokercodes
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2009-10-5
收藏
得分:0 
#include<stdio.h>
void main()
{
    int long sum=0;
    int i,a,j;
    for(i=1;i<=20;i++)
    {
        for(j=1,a=1;j<=i;j++)
        {
            a=a*j;
        }
        sum+=a;
    }
    printf("answer:%d\n",sum);
}
2009-10-25 13:56
zqb7899
Rank: 4
等 级:业余侠客
帖 子:159
专家分:238
注 册:2009-10-16
收藏
得分:0 
回复 73楼 jokercodes
我用WIN-TC编译执行,结果为:answer:-1511
结果不对吧
2009-10-25 14:14
华飞
Rank: 2
等 级:论坛游民
帖 子:18
专家分:18
注 册:2009-10-23
收藏
得分:0 
#include<stdio.h>
int main(void)
{
    int i,j,fact,sum;
    fact=1;sum=0;
    for(i=1;i<=20;i++){
        for(j=1;j<=i;j++){
            fact=fact*j;
        }
       sum=sum+fact;
    }
    printf("%d",sum);
    return 0;
}
2009-10-25 16:43
zqb7899
Rank: 4
等 级:业余侠客
帖 子:159
专家分:238
注 册:2009-10-16
收藏
得分:0 
回复 63楼 zqb7899
#include <stdio.h>

main()
{
  double sum=1,total=0;
  int i;
  for(i=1;i<=20;i++)
    {
     sum=sum*i;
     total=total+sum;
    }
  printf("total=%f.0\n",total);
  getch();
}
用一个for就可以了。
结果为 total=2561327494111820290
最接近准确值 2561327494111820313
2009-10-31 15:42
xiepanqi
Rank: 2
等 级:论坛游民
帖 子:43
专家分:55
注 册:2009-10-24
收藏
得分:0 
头文件<stdio.h>里好像没getch()函数吧
2009-11-10 11:03
一梦浮生
Rank: 1
来 自:重庆
等 级:新手上路
帖 子:2
专家分:0
注 册:2016-3-19
收藏
得分:0 
看来是老帖子了,可不可以只引用三个量达到目的呢?
2016-03-19 14:31
一梦浮生
Rank: 1
来 自:重庆
等 级:新手上路
帖 子:2
专家分:0
注 册:2016-3-19
收藏
得分:0 
我的程序是#include"stdio.h"
void main(void)
{float n,s,t,i;
s=0;
for(n=1;n<=20;n++){
    t=1;
for(i=1;i<=n;i++)
    t=t*i;s=s+t;}
printf("1!+2!+3!+4!+...+20!=%e\n",s);
}
可是我很想知道这道题能不能只要三个量做出来
2016-03-19 14:32
hui528169
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2016-11-6
收藏
得分:0 
可以用三个变量达到的。其实不需要每个数的阶乘都从1开始算一次,那样需要上面的两层循环。
public class test{
 public static void main( String[]args){
     int i;
     long n=1, m= 0;
     for(i=1;i<=20;i++)
     {
       n = n*i;
       m = m+ n;
      }
      System.out.println(m);
}
}
 
2016-11-06 22:23
快速回复:求1!+2!+3!+4!+……+20!
数据加载中...
 
   



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

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