C语言求大数阶乘

原创 2015年07月07日 21:19:07

#include<stdio.h>

#define Maxlen  10000

#define    N     1997

int mult(int num[ ], int  len, int  n)

{  int  i, rem =0;

    for(i=0;i<len;i++)

    {  rem+=num[i]*n;

       num[i]=rem%10;

       rem=rem/10;

    }    

    if(rem>0)

    {num[len]=rem%10;

     len++;

     rem=rem/10;

    }

    return len;

}

void main()

 {

     int num[Maxlen];

    int len = 1, i;

    num[0]=1;

    for(i=2;i<=N;i++)

    len = mult(num,len,i);

    for(i=len-1;i>=0;i---)

    printf("%d",num[i]);

    printf("\n");


}


大数的阶乘(C语言实现)

我之前贴了一个大数运算之100的阶乘(C语言实现),当时由于时间紧,没怎细看,也没优化就给传上来了,后来发现运行效率确实不行,主要因为使用了累计相加来实现乘法,怪不得被人踩了几下,今天又琢磨了一下,重...
  • wangqiuyun
  • wangqiuyun
  • 2012年09月05日 20:29
  • 8968

C语言 求一个大数的阶乘

C语言 求一个大数的阶乘 void BigFactorial(int m) { static int a[50000]={0,1};//第一位不用 int i,j,carry,tmp,lenth...
  • lcytrl
  • lcytrl
  • 2012年10月08日 11:08
  • 5164

大数运算(7)——大数阶乘(求阶乘)

对于大数来说,一个数的阶乘是非常大的,同样,一个int类型的整数,他的阶乘就有可能会很大。 就拿50来说,他的阶乘位数是65位,就已经远远超过了long long int类型的最大值。这时候,我们要...
  • lisp1995
  • lisp1995
  • 2016年09月01日 21:22
  • 2189

大数阶乘&&大数乘法

#include #include #include #include #include using namespace std; #define inf 0x3f3f3f3f int a[10005...
  • u013776243
  • u013776243
  • 2016年02月28日 20:38
  • 246

求大数的阶乘。比如1000的阶乘。C语言里没有能够存这么大的数据类型。

我的想法是用两个循环, 外层循环qiumeigeshu
  • u012685794
  • u012685794
  • 2014年07月02日 13:34
  • 2606

大数阶乘的c语言算法心得

由于大数阶乘的位数超出了int的表示范围,我们只能用一个数组来放置它,那么首先确定结果数组的大小,这个可以根据阶乘位数的计算公式来计算,这里有个关键点,在定义数组的时候可以先给出一个指针,在原则上指针...
  • keiigzy123
  • keiigzy123
  • 2013年04月11日 09:44
  • 978

大数阶乘和一个数的n次幂(c语言)

对于一个数的阶乘,一般情况下(不是竞赛),用
  • u013240038
  • u013240038
  • 2014年10月26日 09:26
  • 1783

大数阶乘(C语言实现)

c语言实现大数阶乘
  • breeze_blows
  • breeze_blows
  • 2017年06月28日 22:54
  • 224

C语言大数阶乘

C语言大数阶乘的思路: 1、设置一个整型数组表示最终的结果,整型数组的每一个元素表示结果的每一位,因此,每一个元素不超过9。 2、初始化整型数组为1,有效长度为1,将k=1,2,3, ..., n...
  • x_i_y_u_e
  • x_i_y_u_e
  • 2015年02月19日 20:16
  • 819

C++实现——大数阶乘

/* 大数的阶乘: 给定一个整数n,将其阶乘n!值存入到一个数组中。 */#include #include #include using namespace std; //n代表要求的N值...
  • langmanqishizaijia
  • langmanqishizaijia
  • 2016年04月07日 14:49
  • 2309
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C语言求大数阶乘
举报原因:
原因补充:

(最多只允许输入30个字)