返回顶部

收藏

计算 30000 的阶乘

更多
/*计算 30000 的阶乘 !*/

/* This file "jiech2.c" 
  created at 2001-08-24 20:15:22
  by LeiPeng .
*/

#include <conio.h>
#include <ctype.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAXN 0X7000

int a[MAXN];

int main(int argc,char *argv[])
{
    int n,m,i,j,c,t;
    printf("Enter n(n>=2) :");
    while(1)
    {
        scanf("%d",&n);
        if(n>=2&&n<=3276) break;
        printf("must be 2<=n<=3276");
    }
    a[0]=1; m=1;
    for(i=2;i<=n;i++)
    {
        for(c=0,j=0;j<m;j++)
        {
            t=a[j]*i+c;
            a[j]=t%10;
            c=t/10;
        }
        while(c)
        {
            a[m++]=c%10;
            c/=10;
        }
    }
    printf("%d!=\\n",n);
    for(i=m-1;i>=0;i--) putchar(a[i]+0x30);    
    printf("\\npress any key to continue .\\n");
    getch();
    return 0;
} 
/*3000!得结果超出了电脑能显示得范围,所以最好采用数组来记录每位*/
//该片段来自于http://outofmemory.cn

标签:c++,算法

收藏

0人收藏

支持

0

反对

0

»更多 您可能感兴趣的代码
  1. 2012-12-06 21:23:15c++大数阶乘算法 by zetaliang
  2. 2012-12-20 13:30:20伪造硬币问题 by 傅小黑
  3. 2013-07-27 15:09:08C++顺序表操作代码演示 by qqmmcc
  4. 2014-04-05 14:40:50C++算法之可变参数 by 童学芬
  5. 2014-05-18 11:40:55KMP字符串匹配算法 by 童学芬
  6. 2014-05-19 15:46:15高效素数筛法 by lucasli
  7. 2014-05-20 12:48:01线性表之顺序表 by 千万不要郁闷
  8. 2014-05-22 13:29:39递归题改为非递归题实例 by lucasli
  9. 2014-05-27 11:43:40广度优先遍历 by aiheng1988
  10. 2014-06-04 11:01:43阶乘之和 by 小项
  11. 2014-06-10 11:19:27使用二维数组排列组合实现倒计时 by sxgkwei

发表评论