能产生10的只有2x5
我们用d2记录2的个数,用d5记录5的个数,从而d5-d2就排除了尾部所有的0
#include <iostream>
using namespace std;
const int N = 21;
int main() {
int n; cin >> n;
int d2 = 0, d5 = 0;
int res = 1;
for (int i = 1; i <= n; i++) {
int x = i;
while (x % 2 == 0) x /= 2, d2++;
while (x % 5 == 0) x /= 5, d5++;
res = res * x % 10;
}
for (int i = 0; i < d2 - d5; i++) res = res * 2 % 10;
cout << res << endl;
return 0;
}