andy6804tw
8/18/2016 - 2:07 AM

https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=564 這題最大測資有1000階層會爆所以要利用大數運算動態配置儲存1000筆資料

https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=564

這題最大測資有1000階層會爆所以要利用大數運算動態配置儲存1000筆資料

import java.math.BigInteger;
import java.util.*;  
  
public class Main {  
  
    public static void main(String[] args) {  
        Scanner scn = new Scanner(System.in);  
        BigInteger arr[]=new BigInteger[1001];
        arr[1]=new BigInteger("1");arr[0]=new BigInteger("1");
        for(int i=2;i<=1000;i++){
        	arr[i]=arr[i-1].multiply(new BigInteger(Integer.toString(i)));
        }
       while(scn.hasNext()){
    	  int num=scn.nextInt();
    	  System.out.println(num+"!\n"+arr[num]);
       }
    } 
    /* 
    題目:Q623 - 500!
    作者:1010
    時間:西元 2016 年 8 月 */
}