阶乘
NN 的阶乘(记作 N!N!)是指从 11 到 NN(包括 11 和 NN)的所有整数的乘积。
阶乘运算的结果往往都非常的大。
现在,给定数字 NN,请你求出 N!N! 的最右边的非零数字是多少。
例如 5!=1×2×3×4×5=1205!=1×2×3×4×5=120,所以 5!5! 的最右边的非零数字是 22。
输入格式
共一行,包含一个整数 NN。
输出格式
输出一个整数,表示 N!N! 的最右边的非零数字。
数据范围
1≤N≤10001≤N≤1000
输入样例:
7
输出样例:
4
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int main()
{
int n;
cin>>n;
int ans=1;
int d2=0,d5=0;
for(int i=1;i<=n;i++)
{
int x=i;
while(x%2==0)
{
d2++;
x=x/2;
}
while(x%5==0)
{
d5++;
x=x/5;
}
ans=ans*x%10;
}
if(d2>d5)
{
for(int i=1;i<=d2-d5;i++)
ans=ans*2%10;
}
if(d5>d2)
{
for(int i=1;i<=d5-d2;i++)
ans=ans*5%10;
}
cout<<ans;
return 0;
}