AcWing:1381。階乗
毎回最後の7ビットを保持します
中間結果を保存するためにlongを使用する
ACコード
import java.util.*;
import static java.lang.System.out;
public class Main{
public static void main(String [] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
long ans = 1;
for(int i = 2; i <= n; i++) {
ans *= i;
while(ans % 10 == 0) ans /= 10;
// 1000 * 1000
// 为什么是 7 位呢?因为数据范围是 1 ~ 1000。
// 两数相乘的结果,最多有 6 个零。所以保留 7 位肯定没问题。
ans = ans % 10000000;
}
out.println(ans % 10);
}
}