P1134 阶乘问题
数论题用暴力做系列。。。
这道题看起来好像很头疼的样子。\(n\)的范围那么大怎么做???
暴力出奇迹。。。
我们用个变量ans记录。套上\(n\)次循环,一次乘上\(i\),然后把尾数的0都删掉。
但是可能一直都没有0,ans会慢慢爆精度。难道我们要写高精度?
其实不需要。我们只需要最后膜一个数就可以了。
具体多大呢?自己去试试。这就是玄学的问题了。
PS:数据真的水。。。
代码:
#include<cstdio>
const int maxn = 50000005;
#define ll long long
ll n;
int main()
{
scanf("%lld", &n);
ll ans = 1;
for(int i = 1; i <= n; i++)
{
ans = ans * i;
while(ans % 10 == 0) ans /= 10;
ans = ans % 1000000;
}
printf("%lld\n", ans % 10);
return 0;
}