您的位置:首页 > 其它

阶乘的精确值

2011-12-05 23:06 162 查看
#include <stdio.h>
#include <string.h>

#define MAXN	3000
int f[MAXN];

int main(void)
{
int i, j, n;
int s, c;		//s为积 c为进位值
scanf("%d", &n);
memset(f, 0, sizeof(f));
f[0] = 1;
for (i=2; i<=n; ++i) {
c = 0;
for (j=0; j<MAXN; ++j) {
s = f[j] * i + c;
f[j] = s % 10;
c = s / 10;
}
}

for (j=MAXN-1; j>=0; --j)
if (f[j])
break;

for (i=j; i>=0; --i) {
printf("%d", f[i]);
}
printf("\n");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: