计算100!

除了使用BigInteger外 还可以使用数组

package edu.cumt.jnotnull;

public class Calc {
	public static void main(String[] args) {
		int N = 100;
		int[] rt = new int[1000];
		rt[0] = 1;
		int len = 1, i;//len为位数
		int c = 0;//进位
		for (i = 2; i <= N; i++) {
			for (int j = 0; j < len; j++) {
				int tmp = rt[j] * i + c;//相应阶乘中的一项与当前所得临时结果的某位相乘(加上进位)
				rt[j] = tmp % 10;//更新临时结果的位上信息
				c = tmp / 10;//看是否有进位
			}
			while (c != 0) {//如果有进位
				rt[len++] = c % 10;//新加一位,添加信息。位数增1
				c /= 10;//看还能不能进位
			}
		}
		for (int j = len - 1; j >= 0; j--) {
			System.out.print(rt[j]);
		}
	}
}

 

你可能感兴趣的:(C++,c,C#,J#)