首页 > 其他 > 详细

大数阶乘

时间:2016-05-04 19:09:31      阅读:126      评论:0      收藏:0      [点我收藏+]
技术分享
 1 #include <cstdio>
 2 #include <algorithm>
 3 #include <cstring>
 4 using namespace std;
 5 unsigned short  s[20000];//最多可以容纳5000阶乘;且必须为int型,当为short型时,数组元素大小溢出。因为c为int型,当不段的
 6 int main()
 7 {
 8     int m;
 9     while(~scanf("%d",&m)) 
10     {
11         memset(s,0,sizeof(s));
12         s[0]=1;
13         int c,l=0;
14         for(int i=1;i<=m;i++)//m的阶乘
15         {
16             c=0;
17             for(int j=0;j<=20000;j++)//乘以i之后结果
18             {
19                 s[j]=s[j]*i+c;
20                 c=s[j]/10;
21                 s[j]%=10;
22             }
23         }
24         //printf("%d",s[l]);
25         int i;
26         for(i=20000;i>=0;i--)
27             if(s[i])
28             break;
29         for(;i>=0;i--)
30             printf("%d",s[i]);
31         printf("\n");
32     }
33     return 0;
34 }
View Code

 

大数阶乘

原文:http://www.cnblogs.com/WDKER/p/5459382.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!