實現100到200之間所有數字的階乘和

1.沒有進行可能的異常處理
2.雖然遞歸代碼簡潔不少,但是效率會很低。所以求min的階乘,以及min到max之間所有數的階乘,全部用循環實現
3.TODO 由於數據量較小,所以直接算了。如果數據量大(超過10W級)可以考慮利用多線程,以及線程池的優勢

 

package test2;

import java.math.BigInteger;

public class Example_5 {
	public static void main(String args[])
	{
		Example_5 example = new Example_5();
		System.out.println(example.sumFactorial(100, 200));
	}
	public Example_5(){}
	public BigInteger sumFactorial(int min,int max)
	{
		
		BigInteger ftl = factorial(min);
		BigInteger sum = ftl ;
		if(min<max)
		{
		for(int i =min+1;i<=max; i++)
		{
			ftl = ftl.multiply(BigInteger.valueOf(i));
			sum = sum.add(ftl);
		}
		}
		
		return sum;
		
	}
	
	public BigInteger factorial(int min)
	{
		BigInteger ans = BigInteger.ONE;
		for(int i = 1; i <= min; ++i)
			ans = ans.multiply(BigInteger.valueOf(i));
		return ans;
		
	}


}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章