大数阶乘

时间限制:3000 ms  |  内存限制:65535 KB
难度:3
描述
我们都知道如何计算一个数的阶乘,可是,如果这个数很大呢,我们该如何去计算它并输出它?
输入
输入一个整数m(0<m<=5000)
输出
输出m的阶乘,并在输出结束之后输入一个换行符
样例输入
50
样例输出
30414093201713378043612608166064768844377641568960512000000000000

#include <iostream>
using namespace std;
int main()
{
int m;
int length=0;//控制长度
int count=0;//计算数的位数
int a[20000],j;
a[0]=1;
cin>>m;
if(1<m&&m<5000)
{ for(int i=2;i<=m;i++)
{
for( j=0;j<=length;j++)
{
a[j]=a[j]*i+count;
count=0;
if(a[j]>10)
{ count=a[j]/10;
a[j]%=10; if(j==length)
{
length++;
}
} }
}
for(int i=length;i>=0;i--)
{
cout<<a[i];
}
cout<<endl;
}
return 0;
}


#include<stdio.h>
#include<string.h>
const int maxn=20000;
int a[maxn];
int main()
{
int n,i,j,s,c;
scanf("%d",&n);
memset(a,0,sizeof(a));
a[0]=1;
for(i=2;i<=n;i++)
{c=0;
for(j=0;j<=maxn;j++)
{
s=a[j]*i+c;
a[j]=s%10;
c=s/10;
}
}
for(j=maxn;j>=0;j--) if(a[j]) break;
for(i=j;i>=0;i--) printf("%d",a[i]);
printf("\n");
return 0;
}

最新文章

  1. 数据库精华知识点总结(1)—数据库的三层模式和二级映像,E-R(实体联系图)图,关系模型
  2. ActiveMQ开发与简介
  3. 理解与模拟一个简单web服务器
  4. JSONKit解析json数据
  5. Solve one floodlight install problem
  6. ADO,OLEDB,ODBC,DAO的区别【转】
  7. 第二部分 Nhibernate中的类型
  8. Unity欢迎窗口的信息
  9. mybatis字段名与类属性名不相同的冲突
  10. SVN 备忘录
  11. getNextElement( )函数——获取下一个特定的元素节点
  12. 201521123002 《Java程序设计》第3周学习总结
  13. [Python]Codecombat攻略之地牢Kithgard(1-22关)
  14. 利用纯CSS美化checkbox和radio和滑动按钮的实现
  15. 20155324王鸣宇 《网络对抗技术》Web基础
  16. sqlserver2008 批量插入数据
  17. win7系统64位配置Oracle 的ODBC数据源
  18. 【转】Entity Framework 复杂类型
  19. 总结Hibernate4.1+版本与Hibernate3.3+版本区别
  20. Xamarin入门,开发一个简单的练手APP

热门文章

  1. HTTP基本认证(Basic Authentication)的JAVA演示样例
  2. luogu2508 [HAOI2008]圆上的整点
  3. NUnit Console Command Line
  4. Maven与IDEA结合
  5. 第18章 Redis数据结构常用命令
  6. [Javascript] HTML5 地理位置定位(HTML5 Geolocation)原理及应用
  7. thinkphp 具体常量,在view里面使用
  8. [luogu普及] ---P1032 字串变换
  9. Super超级ERP系统---(4)采购管理--采购单创建
  10. 修改ElementUI源码