package com.raylew.algorithm.book1; /* 求阶乘的精确值 */ public class 阶乘的精确值 { public static void main(String[] args) { int n = 30; int maxN = 3000; int[] f = new int[maxN]; f[0] = 1; int i, j; for (i = 2; i <= n; i++) { int c = 0; for (j = 0; j < maxN; j++) { int s = f[j] * i + c; f[j] = s % 10; c = s / 10; } } for (j = maxN - 1; j >= 0; j--) { if (f[j] != 0) { break; } } for (i = j; i >= 0; i--) { System.out.print(f[i]); } } }