时间限制: 1000 ms 内存限制: 65536 KB
提交数: 34265 通过数: 10018【题目描述】
求<span id="MathJax-Span-2" class="mrow"><span id="MathJax-Span-3" class="mn">1000010000以内<span id="MathJax-Span-5" class="mrow"><span id="MathJax-Span-6" class="mi">nn的阶乘。
【输入】
只有一行输入,整数<span id="MathJax-Span-8" class="mrow"><span id="MathJax-Span-9" class="mi">nn(<span id="MathJax-Span-11" class="mrow"><span id="MathJax-Span-12" class="mn">0<span id="MathJax-Span-13" class="mo">≤<span id="MathJax-Span-14" class="mi">n<span id="MathJax-Span-15" class="mo">≤<span id="MathJax-Span-16" class="mn">100000≤n≤10000)。
【输出】
一行,即<span id="MathJax-Span-18" class="mrow"><span id="MathJax-Span-19" class="mi">n<span id="MathJax-Span-20" class="mo">!n!的值。
【输入样例】
4
【输出样例】
24
更多信息学奥赛学习资料
链接:https://pan.baidu.com/s/1IBH3uj7OdE6gx16RYxZCtw?pwd=ip6d
提取码:ip6d
#include<iostream> #include<cstring> #define N 100010 using namespace std; int n,a[N],lena=1; int main(){ cin>>n; a[0]=1; for(int k=2;k<=n;k++){ for(int i=0;i<lena;i++)a[i]*=k; for(int i=0;i<lena;i++){ if(a[i]>9){ a[i+1]+=a[i]/10; a[i]%=10; if(i==lena-1)lena++; } } } for(int i=lena-1;i>=0;i--)cout<<a[i]; cout<<endl; }
标签:信息学,lena,10000,1172,int,奥赛,阶乘 From: https://www.cnblogs.com/sd129/p/16652236.html