51Nod - 1057 -- N的阶乘(大整数乘法)
2018-06-17 21:19:04来源:未知 阅读 ()
2018-02-03
还好写过大整数运算,顺利地一编A过。(这道题就是一道大整数乘法的实现代码)
简单的说一下吧。大整数运算的思想就是用数组储存数字,并且依靠数组进行进位的模拟。
当然这个用的是每1个存储一格,要想优化时间的话可以考虑每4个存储一格。
#include <stdio.h> #include <string.h> #include <math.h> #include <algorithm> #include <queue> #include <stack> using namespace std; int a[37000],k; void chengfa(int n) { int j,i,temp,carry; a[0]=1;k=1; for(i=2;i<=n;i++) { carry=0; for(j=0;j<k;j++) a[j]*=i; for(j=0;j<k;j++) { temp=carry+a[j]; a[j]=temp%10; carry=temp/10; } while(carry) { a[k++]=carry%10; carry/=10; } } } int main() { int n,flag; while(~scanf("%d",&n)) { memset(a,0,sizeof(a)); chengfa(n); flag=0; for(int i=k-1; i>=0; i--) { if(a[i]!=0||flag==1) { printf("%d",a[i]); flag=1; } } printf("\n"); } }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:Link Cut Tree 总结
- L1-013 计算阶乘和 (10分) 2020-03-24
- 用C++实现:高精度阶乘 2020-03-18
- 51nod——1174 区间中最大的数(ST) 2019-01-21
- 51Nod 1015 水仙花数 2018-12-28
- 51Nod 1004 n^n的末位数字 2018-12-28
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash