1000的阶乘-HDU 1042-大数阶乘(万进制思想)
来源:互联网 发布:张辛苑的淘宝店 编辑:程序博客网 时间:2024/05/11 16:05
代码仅供参考,勿拷贝作为课堂派作业!!!
思路:
即用数组a,数组中的每个元素存储4位数,,
比如,计算9的阶乘,在计算到7的阶乘时,7!为5040,可以用a[0]存储5040,没有产生进位,然后8!=5040*8=40320,如果看成万进制则产生了进位,那么a[0]=320(注意输出时不足4位的要在前边补0),a[1]=4(最高位不用补0),9!=40320*9,那么a[0]*9=320*9=2880,a[1]*9=4*9=36,那么9!=a[1]+a[0]=362880(注意这里的+相当于字符串连接,)
以下AC代码:
#include<stdio.h>int a[10005];int main(){ int n; while(scanf("%d",&n)!=EOF) { int index,temp,i,j; a[0]=1; index=0; ///阶乘结果总长度 for(i=1;i<=n;i++) { temp=0; ///进位 for(j=0;j<=index;j++) { /// a[j]=a[j]*i+temp; temp=a[j]/10000; a[j]%=10000; } if(temp>0) { ///如果产生进位,直接跳到下一个a[i], a[++index]=temp; } } printf("%d",a[index]); for(i=index-1;i>=0;i--) { ///不满4位的前边补0 if(a[i]>=1000) printf("%d",a[i]); else if(a[i]>=100) printf("0%d",a[i]); else if(a[i]>=10) printf("00%d",a[i]); else printf("000%d",a[i]); } printf("\n"); } return 0;}
1 0
- 1000的阶乘-HDU 1042-大数阶乘(万进制思想)
- HDU 1042 大数的阶乘
- hdu-大数的阶乘
- HDU-1042(大数阶乘)
- hdu 1042 大数阶乘
- HDU 1042 大数阶乘...
- HDU 1042 大数阶乘
- hdu 1042 大数阶乘 ,
- 大数阶乘(万进制)(HDU 1402)
- N!(1042)hdu(大数阶乘)
- HDU 1042 N!(大数阶乘)
- hdu 1042 N!(大数阶乘)
- HDU 1042 N! 阶乘(大数)
- HDU - 1042 - N!(大数阶乘)
- HDU 1042 N! N的阶乘(大数)
- HDU-求大数的阶乘
- HDU-1042(大数阶乘_java)
- hdu 1042 阶乘--大数乘法
- 扒一扒ARM Cortex-M各版本的第一款MCU
- mapreduce之倒排索引代码
- Codeforces(722D)-Generating Sets
- Vim学习指南
- 微信小程序尝鲜
- 1000的阶乘-HDU 1042-大数阶乘(万进制思想)
- 单显卡台式机(Ubuntu15.04+Win7)安装Cuda7.5+cuDnn v4 心路历程
- 积性函数前缀和求和的方法
- 第一次机房收费之充值
- Go语言基础:变量赋值顺序
- HDU5908 Abelian Period(模拟暴力)
- 剑指offer:二叉树的镜像(java)
- 从功能模块角度看ARM Cortex-M各处理器区别
- window环境中0.python1.Numpy 2. Scipy 3. Matplotlib 4. Scikit-Learn的安装