http://acm.nyist.net/JudgeOnline/problem.php?pid=28

大数阶乘

时间限制:3000 ms  |  内存限制:65535 KB
难度:3
描述
我们都知道如何计算一个数的阶乘,可是,如果这个数很大呢,我们该如何去计算它并输出它?
输入
输入一个整数m(0<m<=5000)
输出
输出m的阶乘,并在输出结束之后输入一个换行符
样例输入
50
样例输出
30414093201713378043612608166064768844377641568960512000000000000
程序代码:
     
 #include<stdio.h>
#include<math.h>
int main(){
int n;
while(scanf("%d",&n)!=EOF){
long a[];
int i,j,l,c,m=,w;
a[]=;
for(i=;i<=n;i++){
c=;
for(j=;j<=m;j++){
a[j]=a[j]*i+c;
c=a[j]/;
a[j]=a[j]%;
}
if(c>) {m++;a[m]=c;}
} w=m*+log10(a[m])+;
printf("%ld",a[m]);
for(i=m-;i>=;i--) printf("%4.4ld",a[i]);
printf("\n");
}
return ;
}
大数阶乘位数的计算方法是(int)log10(x)+ 
这个是计算x的位数的
log10(n!)=log10()+log10()+log10()+...+log10(n)

最新文章

  1. adb命令大全「含shell和wait-for-devices等」
  2. Pycharm中的实用功能(网上看到的,感觉还不错)
  3. Django web 开发指南 no such table:
  4. 学习笔记之AJAX无刷新分页
  5. net core VS goang web
  6. DAX/PowerBI系列 - 参数表(Parameter Table)
  7. Codeforces Round #424 (Div. 2, rated, based on VK Cup Finals)
  8. 工厂方法模式(Method Factory),理解多态应用的好例子.
  9. springBoot之配置文件的读取以及过滤器和拦截器的使用
  10. Cmake出现CMake Error: Could not find CMAKE_ROOT !!!
  11. 02_ if_else if 练习
  12. python第六章:三大利器(装饰器,迭代器,生成器)--小白博客
  13. [CB转帖]台湾晶圆厂产能居全球第一 大陆排名第五但增长最多
  14. C#语言
  15. ES查询之刨根问底
  16. UOJ#419. 【集训队作业2018】圆形(格林公式)
  17. 小议 开源中国 I LOVE YOU js代码
  18. Linux上挂载NTFS分区
  19. Setting a maximum attachment size
  20. shell - 常识

热门文章

  1. 一键安装本地yum仓库脚本
  2. 【剑指Offer】33、丑数
  3. EasyUI 解决Js动态加载页面样式不显示问题
  4. TeX中的引号(Tex Quotes, UVa 272)
  5. [CodeForces]1042D
  6. android 手机网络接入点名称及WAP、NET模式的区别
  7. 2018ICPC南京
  8. Maven错误:[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?的解决方法
  9. 谈论java中怎样处理高并发的问题
  10. 记忆化搜索 hdu 1331