天勤OJ 1098 大数处理之《N的阶乘》

来源:互联网 发布:张韶涵妈妈 知乎 编辑:程序博客网 时间:2024/06/13 13:52

题目地址:http://www.acmclub.com/problem.php?id=1098

#include<string.h>#include<stdio.h>#define MAXS 3002typedef struct E{int num[MAXS];int lenth;}E;E ans[1001];E mul(E a,int k){int i;for(i=0;i<=a.lenth;i++)a.num[i]*=k;for(i=0;i<=a.lenth;i++){a.num[i+1]+=a.num[i]/1000;a.num[i]%=1000;}for(a.lenth+=4;a.num[a.lenth]==0;a.lenth--);return a;}int main(){int n,i,j;ans[0].num[0]=1;ans[0].lenth=0;for(i=1;i<=1000;i++)ans[i]=mul(ans[i-1],i);while(~scanf("%d",&n)){printf("%d",ans[n].num[ans[n].lenth]);for(i=ans[n].lenth-1;i>=0;i--)printf("%03d",ans[n].num[i]);printf("\n");}return 0;}


原创粉丝点击