大整数的阶乘

原创 2015年07月07日 15:52:19
#include <iostream>
using namespace std;
int main()
{
    int n;
    while(cin >> n)
    {
        if(n == 0 || n == 1)
            cout << 1 << endl;
        else
        {
            int a[10000] = {0}, i, j, sum, t, k, q;
            a[0] = 1;
            k = 1;
            for(i = 2; i <= n; i++)
            {
                sum = 0;
                for(j = 0; j < k; j++)
                {
                    t = a[j] * i + sum;
                    a[j] = t % 10;
                    sum = t / 10;

                }
                while(sum)
                {
                    a[k++] = sum % 10;
                    sum /= 10;
                }
            }
            for(q = k - 1; q >= 0; q--)
                cout << a[q];
            cout << endl;

        }
    }

    return 0;
}

java 之BigInteger类实现计算大整数的阶乘

package s1;import java.math.*; import java.util.*; public class A7 { public static void main(Str...
  • wilver
  • wilver
  • 2016年06月10日 20:21
  • 3115

大整数阶乘的运算(可以计算1000!)

由于阶乘运算的增长速度特别快(比2^n的增长速度快),对于较小整数的阶乘运算采用简单的递规算法可以实现,但是对于大整数的乘法(比如1000!),则传统的递规算法就失去了作用。由于本人的水平不高,用下列...
  • hengshan
  • hengshan
  • 2005年11月13日 19:39
  • 8942

大整数阶乘

#include #include #include #include using namespace std;struct BigInteger { int len; ...
  • u012319493
  • u012319493
  • 2015年12月06日 21:56
  • 332

计算大整数(比如1000)的阶乘

#include using namespace std; #include using namespace std; int multi(char a, char b) { return ...
  • stpeace
  • stpeace
  • 2013年09月19日 12:00
  • 4285

求大整数的阶乘

输入任意大的整数n,计算n!的准确值。构造大数组存储,每一位存储6位数。 #include #include void li_fac(int n) { int long a[256]={0}...
  • u014041540
  • u014041540
  • 2015年05月28日 10:04
  • 450

大整数阶乘的java实现

在实现K2算法时,用到了阶乘,如果数据量过大,普通阶乘会导致溢出,所以需要用到大整数阶乘。 public class BigIntegerArr { /** * 计算进位 * * @...
  • fine9283530
  • fine9283530
  • 2016年09月23日 17:02
  • 953

求得任意整数的阶乘

所求数越大,内存开销越大……即N的值越大……N的值设为1000,可求得400多的阶乘…… #include #include #include #define N 800/*...
  • zhaopeng2511
  • zhaopeng2511
  • 2011年09月08日 17:17
  • 937

大数的阶乘算法

用data数组来存放阶乘的每一位数字,首先令第一位的数值为1,位数为1,然后将每次相乘的乘积存回数组,并循环处理每个数组中超过10的数,若数值超过10,则需要进位,将位数加1,原来的数除以10,商数加...
  • petershina
  • petershina
  • 2015年04月16日 09:08
  • 3958

大整数阶乘的计算 N!

1、先说小点的数的阶乘计算: // n! unsigned long fac(int n) { if(n == 0) return 1; else return n * fac(n...
  • cxsjabcabc
  • cxsjabcabc
  • 2012年03月05日 22:58
  • 1994

C#阶乘类,可以精确计算大数的阶乘,10000的阶乘只要1.3秒左右

关于阶乘,老郭和宝宝等前辈做了大量研究,计算速度也达到了非常快的水准。本文宗旨不在于和他们比快,因为他们专门为阶乘做了很多优化。本文介绍的是使用C#直接计算的方法,速度虽然不能跟他们相比,但在一般场合...
  • snowdust
  • snowdust
  • 2010年03月18日 13:42
  • 4987
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:大整数的阶乘
举报原因:
原因补充:

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