首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

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

2013-03-21 
天勤OJ 1098 大数处理之《N的阶乘》题目地址:http://www.acmclub.com/problem.php?id1098#includestring.h

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

题目地址: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;}


热点排行