大数相乘之求N!
2015-08-19 17:00
351 查看
#include<stdio.h> #include<math.h> #include<string.h> #include<stdlib.h> #include<ctype.h> #define MAXN 10000+5 int main() { int f[MAXN],c=0,n,i,len; while(scanf("%d",&n)!=EOF) { memset(f,0,sizeof(f)); f[0]=1; len=0; for(int i=2;i<=n;i++) //阶乘乘的数 { c=0; //进位 for(int j=0;j<=len;j++) //被乘数的每一位都要乘乘数 { f[j]=f[j]*i+c; c=f[j]/10000; f[j]%=10000; } if(c!=0) f[++len]=c; //这里是前置运算符,若写成len++结果会出错 } printf("%d",f[len]); //把最高位没有凑够四位的输出,防止有前导0 for(i=len-1;i>=0;i--) printf("%04d",f[i]); //四位四位输出,不够的位数补0 printf("\n"); } return 0; }
相关文章推荐
- swust 2014届选拔赛 题解
- Unreal Engine 4 Terminology
- 逗比的坑——for (int i = 0; gc_handDataOutput->QueryNumberOfHands(); ++i)
- Android微信支付,通知回调方法
- The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path
- PHP扩展下载指导
- C++堆栈问题
- 移动H5前端性能优化
- 每个程序员1小时内必须解决的5个编程问题
- HDU 1071 The area(数学 抛物线 积分)
- 滤波
- 滤波
- 虚拟化--001 view win7优化
- SQL之查询某几行记录--分页查询
- Java下如何启动windows 的程序
- 如何创建一个ContentHub exporter
- try catch finally return
- vmware添加别人拷贝的MAC虚拟机开机卡logo界面问题
- ArcGIS API for Windows phone网站
- 流动python - 什么是魔术方法(magic method)