大整数的阶乘

原创 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;
}

相关文章推荐

大整数阶乘

  • 2016年04月20日 10:56
  • 2KB
  • 下载

求N的阶乘(大整数乘法)

  • 2015年10月31日 17:17
  • 2KB
  • 下载

超精度运算之大整数求阶乘

网上也有很多讲解,,可以看了很多感觉网上写的真的很乱、很难理解,于是自己琢磨了两个多小时改了又改终究是写出了蛮简单的代码,希望阅读者能受益。 代码贴上: #include using namespa...

大整数阶乘 C++

  • 2014年09月26日 09:11
  • 2KB
  • 下载

递归算法(求年龄,阶乘,逆序输出字符串与整数,算两个数最大公约数等)

递归求年龄:        5个人坐在一起,问第5个人多少岁?他说比第四个人大2岁,第4个人比第3个人大2岁,第3个人比第2个人大2岁,第1个人为10岁,问第五个人多大? #include usin...
  • boxyuan
  • boxyuan
  • 2017年02月24日 11:36
  • 170

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

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

大整数乘法 求阶乘

题目来源:http://acm.hdu.edu.cn/showproblem.php?pid=1042 N! Time Limit: 10000/5000 MS (Java/Others)...

大整数问题,乘法,加法,阶乘

//大整数相乘 //c[i+j] += a[i]*b[j];数组的每一位相乘然后相加,并得到最终结果 //再考虑进位问题  #include #include #define SIZE ...

大整数阶乘的java实现

在实现K2算法时,用到了阶乘,如果数据量过大,普通阶乘会导致溢出,所以需要用到大整数阶乘。 public class BigIntegerArr { /** * 计算进位 * * @...

解题笔记(38)——大整数阶乘计算

问题描述:求一个整数 n 的阶乘,0      比如n = 50,结果为304140932017133780436126081660647688443776415689605120000000...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:大整数的阶乘
举报原因:
原因补充:

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