阶乘的精确值
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; }