s题目描述
N的阶乘写作N!表示小于等于N的所有正整数的乘积。阶乘会很快的变大,如13!就必须用32位整数类型来存储,70!即使用浮点数也存不下了。你的任务是找到阶乘最后面的非零位。举个例子,5!=1*2*3*4*5=120所以5!的最后面的非零位是2,7!=1*2*3*4*5*6*7=5040,所以最后面的非零位是4。输入
共一行,一个整数不大于4,220的整数N。
输出
共一行,输出N!最后面的非零位。
样例输入
7
样例输出
4
AC代码📒
#include<stdio.h>
int ss(int n)
{
int i,sum=1;
for(i=1;i<=n;i++)
{
sum=sum*i;
while(sum%10==0)
sum/=10;
sum=sum%1000;
}
return sum;
}
int main()
{
int n,sum;
scanf("%d",&n);
sum=ss(n);
printf("%d\n",sum%10);
return 0;
}