hdu1042 N!

N!

Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 49706    Accepted Submission(s): 13958


Problem Description
Given an integer N(0 ≤ N ≤ 10000), your task is to calculate N!
 

Input
One N in one line, process to the end of file.
 

Output
For each N, output N! in one line.
 

Sample Input
   
   
   
   
1 2 3
 

Sample Output
   
   
   
   
1 2 6
import java.io.IOException;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.FileReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.StreamTokenizer;
import java.math.BigInteger;

class Main
{
	public static final boolean DEBUG = false;
	public StreamTokenizer tokenizer;
	public PrintWriter cout;
	public int n;
	
	public void init()
	{
		BufferedReader cin;
		try {
			if (DEBUG) {
				cin = new BufferedReader(new FileReader("d:\\OJ\\uva_in.txt"));
			} else {
				cin = new BufferedReader(new InputStreamReader(System.in));
			}
			tokenizer = new StreamTokenizer(cin);
		} catch (IOException e) {
			e.printStackTrace();
		}	
		
		cout = new PrintWriter(new OutputStreamWriter(System.out));
	}
	
	public boolean input() throws IOException
	{
		tokenizer.nextToken();
		if (tokenizer.ttype == StreamTokenizer.TT_EOF) return false;
		
		if (tokenizer.ttype == StreamTokenizer.TT_EOL) {
			tokenizer.nextToken();
		}
		
		if (tokenizer.ttype == StreamTokenizer.TT_NUMBER) n = (int)tokenizer.nval;
		
		return true;
	}
	
	public void solve()
	{
		BigInteger ans = BigInteger.ONE;
		
		for (int i = 1; i <= n; i++) {
			ans = ans.multiply(BigInteger.valueOf(i));
		}
		
		cout.println(ans.toString());
		cout.flush();
	}
	
	
	public static void main(String[] args) throws IOException
	{
		Main solver = new Main();
		solver.init();
		
		while (solver.input()) {
			solver.solve();
		}
	}
}



你可能感兴趣的:(hdu1042 N!)