題目描述
您將會得到一個整數N,輸出整數N的階乘結果。
N! = N * (N - 1) * (N - 2) * ⋯ * 3 * 2 * 1
原題網址
輸入格式
輸入一個整數N,範圍在1到100之間(包含1和100)。
輸出格式
輸出N的階乘。
範例輸入
25
範例輸出
15511210043330985984000000
注意,當N大於20的時候N階乘的結果將會超過64bit長整數所能表示的範圍,所以這題需要進行大數運算。
解題概念
直接使用Java內建的BigInteger類別來進行整數的大數運算。BigInteger物件的multiply方法可以將目前的BigInteger物件與另一個BigInteger物件進行乘法運算,接著再回傳新產生、儲存著計算結果的BigInteger物件。
參考答案
import java.math.BigInteger;
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
final Scanner sc = new Scanner(System.in);
final int N = sc.nextInt();
BigInteger result = new BigInteger("1");
for (int i = 2; i <= N; ++i) {
result = result.multiply(new BigInteger(String.valueOf(i)));
}
System.out.println(result);
}
}