很裸的边取模边乘。注意因为进位的原因模数应该比较大;
另外,这道题是一道标准的分块打表例题(那样的话数据就可以更大了),可以用来练习分块打表;
#include<bits/stdc++.h> using namespace std; int n; long long zc=1; int main() { scanf("%d",&n); for(register long long i=2;i<=n;i++) { zc%=100000000000; zc=zc*i; while((zc%10)==0) zc/=10; } cout<<(zc%10); }