大数阶乘

时间限制:3000 ms  |  内存限制:65535 KB
难度:3
 
描述
我们都知道如何计算一个数的阶乘,可是,如果这个数很大呢,我们该如何去计算它并输出它?
 
输入
输入一个整数m(0<m<=5000)
输出
输出m的阶乘,并在输出结束之后输入一个换行符
样例输入
50
样例输出
30414093201713378043612608166064768844377641568960512000000000000思路:模拟人工计算的方法计算:a              b*              c------------------d+(remainder) e          d+b*c的进位;  如果乘积为一位数,则a[j]中,余数为0,如果成绩超过前一个数的位数是,j的for循环处理完之后remainder(余数)不为0,会进入while循环,会把当前的a数组扩容一位,存下余数,并且当前数字的位数+1由于存进去的都输余数,最后选择逆序数出,

#include <iostream>
using namespace std;

int a[2005];
int main()
{
int m,remainder,digit,temp;
cin>>m;
a[0]=1;
remainder=0; //余数初始化为0
for(int i=2;i<=m;i++) // 要处理的位数
{
for(int j=0;j<digit;j++)
{
temp=a[j]*i+remainder;
a[j]=temp%10;
remainder=temp/10;
}
while(remainder)
{
a[digit]=remainder%10;
remainder/=10;
digit++;
}
}
for(int i=digit-1;i>=0;i--)
cout<<a[i];
cout<<endl;
return 0;
}

最新文章

  1. Uva 2319
  2. Web跨域问题总结
  3. UNITY3D的变量初始化问题
  4. javascript 注意事项
  5. 实现jsp网页设为首页功能
  6. hibernate简介(Session,几种状态,方法&#183;&#183;&#183;&#183;&#183;&#183;等)
  7. Linux安装包
  8. Lua:简单入门
  9. UIAlertController 的使用——NS_CLASS_AVAILABLE_IOS(8_0)
  10. iOS多线程系列(1)
  11. sqlserver 优化相关
  12. setup命令的安装
  13. 强如 Disruptor 也发生内存溢出?
  14. 贝叶斯推断之最大后验概率(MAP)
  15. emwin 之消息 WM_INIT_DIALOG
  16. Python conda 入门
  17. Unity游戏设计与实现 南梦宫一线程序员的开发实例
  18. 微信小程序接入百度统计
  19. swift - self的弱引用
  20. css样式显示省略号

热门文章

  1. python-day46--前端基础之html
  2. sql连接详解
  3. yum安装docker报 No package docker available错误
  4. quartz---的jobDateil,Trigger的存值
  5. Mac安装fish shell
  6. 【转】移除HTML5 input在type=&quot;number&quot;时的上下小箭头
  7. 多线程私有数据pthread_key_create
  8. React教程-初入
  9. 快速切题sgu127. Telephone directory
  10. bzoj1081