题目描述
也许你早就知道阶乘的含义,N阶乘是由1到N相乘而产生,如:
的阶乘最右边的非零位为
。
写一个程序,计算 阶乘的最右边的非零位的值。
注意: 有 个零。
输入输出格式
输入格式:
仅一行包含一个正整数 。
输出格式:
一个整数,表示最右边的非零位的值。
输入输出样例
输入样例#1:
12
输出样例#1:
6
乍一看这题就乱搞啊,这个数前面的位肯定是没有卵用的。但是!这个数的位数还不能保留少了(最开始我就保留了末尾一位,贼抠)
#include<cstdio>
typedef long long ll;
int n;
int main()
{
scanf("%d",&n);ll ans=1;
for(int i=1;i<=n;i++)
{
ans*=i;
while(ans%10==0)ans/=10;
ans%=1000000;
}
printf("%lld\n",ans%10);
return 0;
}
总结
我是个节俭的人