计算10000以内某个数的阶乘,即大数乘以int,考虑到一个int存一个数位过于繁琐且浪费空间,采用万进制

一个int存四个位数,但注意除了最高位,其他位不够四位数时要加上前导0凑够四位;

例123456*15,3456在一个int(a[1])中,12在a[2]中,a[1]=3456*15=51840,a[2]=12*15=180;

a[1]>9999所以进位:a[2]+=a[1]/10000=185,a[1]%=10000=1840;

所以ans:185 1840;

#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;180
int num[10005];
int main()
{
int n,i,j,k;
while (scanf("%d",&n)!=EOF){
memset(num,0,sizeof(num));
num[0]=num[1]=1;
for (i=2;i<=n;i++){
int len=num[0];
for (j=1;j<=len;j++) num[j]*=i;
for (j=1;j<=num[0];j++){
if (num[j]>9999) {num[j+1]+=num[j]/10000;num[j]%=10000;}
if (num[num[0]+1]) num[0]++;
}
}
for (i=num[0];i>=1;i--){
if(i!=num[0]){
if (num[i]>99&&num[i]<1000)
printf("0%d",num[i]);
else if (num[i]>9&&num[i]<100)
printf("00%d",num[i]);
else if(num[i]<9)
printf("000%d",num[i]);
else printf("%d",num[i]);
}
else printf("%d",num[i]);
}
printf("\n");
}
return 0;
}

最新文章

  1. 测试webAPP时图标背景一片黑色
  2. Usart的单线半双工模式(stm32F10x系列)
  3. [Angularjs]视图和路由(四)
  4. DMALL刘江峰:生鲜市场具有巨大O2O改造空间
  5. juggle
  6. maven添加jar包依赖
  7. JVM经常使用的调优參数
  8. mount的艺术
  9. Xcode Build Setting Reference
  10. android 豆瓣客户端 视频
  11. ios获取相册图片 压缩图片
  12. (iOS)谈谈关于使用category的静态库(原创)
  13. eclipse的xml文件提示templates的模板.md
  14. 流畅python学习笔记:第十九章:动态属性和特性
  15. SSM项目使用GoEasy 获取客户端上下线实时状态变化及在线客户列表
  16. hdu-4612(无向图缩点+树的直径)
  17. FB面经 Prepare: Even Tree
  18. nginx入门与实战
  19. ActiveMQ、RabbitMQ、RocketMQ、Kafka有什么优点和缺点
  20. vue学习【第七篇】:Vue之导入Bootstrap

热门文章

  1. 我是怎么样和Linux结缘并通过红帽RHCE认证的
  2. jpeg exif
  3. label语句、break语句和continue语句
  4. 定制django admin页面的跳转
  5. HTML 和 JavaScript 编写简单的 404 界面
  6. 07: Django 使用ldap登录、注销等
  7. JavaScript 获取地址栏参数
  8. POJ 1679 The Unique MST (次小生成树)题解
  9. Unity3D学习笔记(二十):Rect、Canvas、Toggle、Slider、ScrollBar
  10. OpenFlow protocol version 1.0 通信过程