阶乘和

xiaoxiao2021-02-28  26

#include<bits/stdc++.h> using namespace std; int len=1,t[10001],ans[10001],anslen,n; void jiecheng(int v) {     for(int i=1;i<=len;i++)     t[i]*=v;     int i=1;     while((t[i]>9)||i<len)     {         t[i+1]+=t[i]/10;         t[i]%=10;         i++;     }     len=i; } void jia() {     for(int i=1;i<=len;i++)     {         ans[i]+=t[i];         if(ans[i]>9)         {             ans[i+1]+=ans[i]/10;             ans[i]%=10;             anslen=max(anslen,i+1);         }         anslen=max(anslen,i);     } } int main() {     cin>>n;     t[len]=1;     for(int i=1;i<=n;i++)jiecheng(i),jia();     for(int i=anslen;i>=1;i--)     cout<<ans[i];     return 0; }
转载请注明原文地址: https://www.6miu.com/read-2626840.html

最新回复(0)