高精度阶乘
emmm……
建议先学好高精度+和-,*也应该看一看,最好是熟练的情况下再写阶乘,这个一点技术含量也没有,慢慢模拟就好了:
#include <iostream> #include <cstdio> #include <cstdlib> #include <cstring> #include <algorithm> #include <cmath> using namespace std; int a[505050]; int len,i,j; int main() { int n; cin>>n; a[1]=1; len=1; for(j=1;j<=n;j++) { for(i=1;i<=len;i++) a[i]=a[i]*j; for(i=1;i<=len;i++) { a[i+1]+=a[i]/10000; a[i]=a[i]%10000; } if(a[len+1]>0) len++; for(i=1;i<=len;i++) a[i]=a[i]; } cout<<a[len]; for(i=len-1;i>=1;i--) printf("%04d",a[i]); return 0; }