传送门:http://ybt.ssoier.cn:8088/problem_show.php?pid=1172
【题目描述】
求10000以内n的阶乘。
【输入】
只有一行输入,整数n(0≤n≤10000)。
【输出】
一行,即n!的值。
【输入样例】
4
【输出样例】
24
直接乘去就OK了
#include<iostream> #include<cstring> #define N 100010 using namespace std; int n,a[N],lena=1; int main(){ cin>>n; if(n==0){ cout<<0<<endl; return 0; } 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; }