#include <iostream>
using namespace std;
#define N 1000
int BigNumFactorial(int Num[], int n);
void Print(int Num[], int Index, int n);
int main(void)
{
    int n;
    int Num [N] = {1, 0};          //将第一位的数字初始化为1, 其余的都初始化为0
    cout << "你需要计算哪个数字的阶乘?" << endl;
    cin >> n;
    int Index = BigNumFactorial(Num, n);
    Print(Num, Index, n);
    return 0;
}
int BigNumFactorial(int Num[], int n)      //大数阶乘
{
    int i, j, sum = 1, temp;
    int Index = 0;              //用于表示数组中的有效位置数
    for(i = 2; i <= n; i++)
    {
        temp = 0;
        for(j = 0; j <= Index; j++)
        {
            sum = i * Num[j] + temp;
            if(sum / 10 != 0)       //说明sum不止一位数
            {
                Num[j] = sum % 10;
                temp = sum / 10;        //所谓的‘进位’
            }
            else
            {
                Num[j] = sum;
                temp = 0;
            }
        }
        if(temp != 0)       //如果‘进位’还没有为0
        {
            Index = j - 1;
            while(temp)
            {
                Index++;
                Num[Index] = temp % 10;
                temp /= 10;
            }
        }
    }
    return Index;
}
void Print(int Num[], int Index, int n)
{
    int i;
    cout << n << "阶的结果为: ";
    for(i = Index; i >= 0; i--)
    {
        cout << Num[i];
    }
    cout << endl;
}

最新文章

  1. Delphi_03_Delphi_Object_Pascal_基本语法_01
  2. Android 双卡双待识别
  3. 特殊符号 &amp;&amp; 和 ||
  4. HTTP中的POST、GET区别
  5. 在eclipse中导入weka(小白在路上)
  6. asp.net mvc 模型验证-最舒服的验证方式
  7. java历史集合类对比
  8. redis unwatch discard
  9. UVA 10325 The Lottery( 容斥原理)
  10. 浅谈负载均衡SLB、CLB和综合应用
  11. SpringMVC 服务器端验证
  12. Java垃圾回收算法和垃圾回收器
  13. 使用go tool pprof分析内存泄漏、CPU消耗
  14. 【Maven】项目中没有resources目录
  15. linux crontab yum安装
  16. 史上最简单的js+css3实现时钟效果
  17. window编程_消息分类
  18. C#创建、读写、增加、删除XML操作
  19. 【JUC】CountDownLatch
  20. HZAU2018年十大阅读之星演讲稿

热门文章

  1. C++类的完美单元测试方案——基于C++11扩展的friend语法
  2. C++学习笔记 之 运算符
  3. SQL Server温故系列(2):SQL 数据操作 CRUD 之简单查询
  4. Requests方法 -- 重定向操作
  5. smobiler介绍(一)
  6. 微服务-springcloud学习资料链接
  7. 常用的方法论-SMART
  8. 常用的方法论-Q12
  9. Vue兄弟组件(非父子组件)状态共享与传值
  10. Python之Pandas库学习(一):简介