HDOJ 1042

来源:互联网 发布:尚学堂 java架构师 编辑:程序博客网 时间:2024/05/06 22:43

点击打开链接


题目的数据给的有40000位左右,所以要缩进,数组每一位存储5位即10的5次方就进位


#include<iostream>#include<cstdio>#include<cstring>using namespace std;int sum[8005];int main(){    int i,j,n;    while(cin>>n){        memset(sum,0,sizeof(sum));        sum[0]=1;        for(i=1;i<=n;i++){            for(j=0;j<=8004;j++)                sum[j]*=i;            for(j=0;j<=8004;j++){                if(sum[j]>=100000){                    sum[j+1]+=sum[j]/100000;                    sum[j]%=100000;                }            }        }        i=8004;        while(i--){            if(sum[i]!=0)                break;        }        cout<<sum[i];        i--;        for(;i>=0;i--){            printf("%05d",sum[i]);        }        cout<<endl;       }    return 0;}


原创粉丝点击