大整数的阶乘

原创 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实现大数的阶乘(数组存放数据)

我们知道一个数的阶乘是很长大的数据,那么用基本数据类型存放的数据范围有限,就算是Long有8 个字节,也无能为力。那我们自然而然的考虑用数组存放数据。

大整数的阶乘

大整数阶乘:n!=n*(n-1)*(n-2)*⋯\cdots*2*1;

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

HDU1042 n!

问题链接:HDU1042 n!。 看似简单的问题,背后实际上有许多道理。 阶乘值随着n的增大,增大的速度相当的快,是一个大整数。似乎这个题可以使用大整数类进行计算,然而类计算相对复杂,时间上溢出的可能...

HDU 1042 N! 参考代码

大整数运算之N!使用一般数组的方法,每个数组元素存放5位数,以避免超时。

One Day One Step 之大数阶乘

     在说大数阶乘之前,我先来说一下大数乘法。一般来说,当操作数的数量级很大的时候,肯定是要用数组进行模拟的!之所以说是模拟,就是因为他模仿了我们我们平时做乘法时的步骤!不过我想了很久都...

阶乘的精确值(借鉴白书)

输入不超过1000的正整数n,输出n的阶乘的精确结果 样例输入:30 样例输出:265252859812191058636308480000000 分析: 为了保存结果,需要分析1000!有多...

可怕的阶乘

计算阶乘n!是一件可怕的事情,因为当n并不是很大时,n!将是一个很大的值。例如13! = 6227020800,已经超过了我们常用的unsigned int类型的取值范围。请设计一个程序,使其可以计算...

大整数乘法 求阶乘

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

大数阶乘思考

最近一场校招比试题考的是编程实现9999!,最后面试官竟然因为我写的程序最复杂给我一次面试机会,最后发现招聘的岗位是偏向于硬件,最后就没有最后了。 面试官说这个问题应该是很简单,直接long doub...

阶乘,大数问题

#include #include using namespace std; const int Maxsize=100000;//结果的最大长度 int result[Maxsize],n,re...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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