在求阶乘的过程中求余和去掉后面的0,因为0对答案所求的最右边的非0数没有贡献
#include <algorithm>
#include <bitset>
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <deque>
#include <functional>
#include <iostream>
#include <map>
#include <queue>
#include <set>
#include <stack>
#include <string>
#include <vector>
using namespace std;
const int mod = 1e9;
int main(int argc, char const *argv[])
{
int n;
long long int sum = 1;
cin >> n;
for (int i = 2; i <= n; i++)
{
sum *= i;
while (sum % 10 == 0)
sum /= 10;
sum %= mod;
}
printf("%lld\n", sum % 10);
return 0;
}