求10000以内n的阶乘

总时间限制: 5000ms 内存限制: 655360kB

描述

求10000以内n的阶乘。

输入只有一行输入,整数n(0<=n<=10000)。输出一行,即n!的值。样例输入

100

样例输出

93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000

来源http://noi.openjudge.cn/ch0106/14/

复制代码
 1 #include<iostream>
 2 #include<cstring>
 3 using namespace std;
 4 int n,y,i;
 5 int a[100000],ay[100000];
 6 
 7 int main()
 8 {
 9     cin>>n;
10     a[0]=1;   //高精度数的位数 
11     a[1]=1;   //高精度整数1(逆向存储,位数放在数组第0个元素) 
12     for(y=1;y<=n;y++)
13     {
14         memset(ay,0,sizeof(ay));
15         ay[0]=a[0];
16         for (i=1;i<=a[0];i++)
17         {
18           ay[i]+=a[i]*y;
19           ay[i+1]=ay[i]/10;  //向高位进位 
20           ay[i]%=10;
21         }
22         while(ay[ay[0]+1]>0)  //向高位进位 
23         {
24             ay[ay[0]+2]=ay[ay[0]+1]/10;
25             ay[ay[0]+1]%=10;
26             ay[0]++;
27         }
28         for(i=1;i<=ay[0];i++) a[i]=ay[i];
29         a[0]=ay[0];
30     }
31     for(i=a[0];i>=1;i--) cout<<a[i];
32     cout<<endl;
33     return 0;
34 }
View Code
复制代码

 

posted on   华山青竹  阅读(1146)  评论(0编辑  收藏  举报

编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示