题解 P2726 【【题目待添加】】
最简单题解
根据小学数学,个位数与其他数相乘后的乘积的个位数不受十位数影响
所以理论上只记录个位数就行了,但遇到10要mod10
但是,只记录个位数会有误差,所以我选择记录后3位
所以不用用高精,用int就可以
(实验过unsigned short和short都不行,前者wa+四个点AC后者wa+tle+3个点AC)
#include<iostream>
using namespace std;
int main()
{
int n,ans=1;
cin>>n;
for(int i=1;i<=n;i++)
{
ans*=i;//阶乘
while(ans%10==0) ans/=10;//去0
ans%=1000;//只记录后三位
}
cout<<ans%10;//最后一位
return 0;
}