`

Java: 求100!

    博客分类:
  • Java
阅读更多

 把每一步的结果分解成单个数字存入数组。没有使用BigInteger。

public static void main(String[] args) {  
		int N=100;  
		int [] rt=new int[1000];  
		rt[0]=1;  
		int len=1,i;  
		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;  
				c/=10;
			}
		}
		for(int j=len-1;j>=0;j--){  
			System.out.print(rt[j]);  
		}
//		System.out.println();  
	}

 

下面是利用BigInteger的解法:

	public int sum =1 ;
	public BigInteger biSum = new BigInteger("1");
	
	public static void main(String[] args) {
		Factorial100 test = new Factorial100();
		test.calBigInt(100);
		System.out.println(test.sum);
		System.out.println(test.biSum);
	}
	
	public int calInt(int num){
		for(int i=num; i>0; i--){
			sum *= i;
		}
		return sum;
	}
	
	public String calBigInt(int num){
		for(int i=num; i>0; i--){
			biSum = biSum.multiply(BigInteger.valueOf(i));
		}
		return biSum.toString();
	}

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics