QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3355|回复: 8

关于对阶乘求和的问题!谢谢!

[复制链接]
发表于 2004-11-1 22:01:36 | 显示全部楼层 |阅读模式
我现在想认真学习C语言!我刚刚起步,不免有些很笨的问题,谢谢兄弟们的指教!
这是关于对阶乘求和的问题,题目是:
求1!+2!+3!+4!+5!+6!+7!+8!+9!.......+17!+18!+19!+20!
我写的代码是:
[code:1]main()
{
int i,sum;
for(i=1,sum=0;i<=20;sum+=jiecheng(i),i++)
printf("%ld",sum);
}
int jiecheng (int n)
{
  long a;
  int n;
  while(n<=20&&n>=1)
  {a=20;n--;a*=(n-1);}
  return(a);
}[/code:1]
编译凑合着通过了,但是运行后吓了我一跳!请看:
[code:1]@fydream yuandaima]$ gcc -o fy 64.c
64.c: In function `jiecheng':
64.c:10: warning: declaration of `n' shadows a parameter
64.c:14:2: warning: no newline at end of file
[fydream@fydream yuandaima]$ ./fy
05181436103628721554430820725744259071803108861636270052414514884663292451814360569957966217723267358668725401047772154082902976880844129326584898447284[fydream@fydream yuandaima]$
[/code:1]
谢谢兄弟们的帮助!
发表于 2004-11-1 22:45:40 | 显示全部楼层
20的阶乘很大,long不够表达。

[code:1]
#include <stdio.h>
unsigned long long jiecheng(i)
{
    int j;
    unsigned long long k=1;
    for(j=i;j>1;j--)
        k=k*j;
    return k;
}

main(int argc,char **argv)
{
    int i;
    unsigned long long sum=0;
    for(i=1;i<=20;i++)
        sum=sum+jiecheng(i);
    printf("%llu\n",sum);
}

[/code:1]
回复

使用道具 举报

发表于 2004-11-1 22:46:43 | 显示全部楼层
你打出的数字很长是因为你没加回车,所以连在一起了。
回复

使用道具 举报

发表于 2004-11-2 08:33:59 | 显示全部楼层
用递归
回复

使用道具 举报

 楼主| 发表于 2004-11-2 12:42:29 | 显示全部楼层
欧!这下好了!谢谢兄弟!用无符号长整型定义!我记住了!谢谢!!!
回复

使用道具 举报

发表于 2004-11-2 22:51:42 | 显示全部楼层
对整型数我在保重一下:
int就是signed short int
signed int =-2^15>2^15
unsigned int 0>(2^16)-1
short int 大少和signed int一样大
unsigned short int 大少和 unsigned int一样大
long int=-2^31>(2^31)-1
unsigned long int =0>(2^32)-11
回复

使用道具 举报

 楼主| 发表于 2004-11-20 16:36:01 | 显示全部楼层
好的!谢谢楼上的兄弟,帮助归纳!谢谢!:)
回复

使用道具 举报

发表于 2007-10-11 16:58:31 | 显示全部楼层
不知道有谁知道把上面的阶乘用java写一下啊
回复

使用道具 举报

发表于 2007-11-29 16:20:10 | 显示全部楼层
java与C++是一样的.java的各包,自己查一下资料,将自己觉得有用的记下来,相信对水平有所提高!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-4-17 00:35 , Processed in 0.105294 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表