如果数字小没问题,但数字大了就不行,如下下图。
觉得算法没问题,求解。
题目描述
也许你早就知道阶乘的含义,N阶乘是由1到N相乘而产生,如: 12! = 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8 x 9 x 10 x 11 x 12 = 479,001,600 12的阶乘最右边的非零位为6。 写一个程序,计算N(1<=N<=50,000,000)阶乘的最右边的非零位的值。 注意:10,000,000!有2499999个零。
输入
仅一行包含一个正整数N。
输出
单独一行包含一个整数表示最右边的非零位的值。
样例输入
12
样例输出
6
#include
int main(void)
{
int n,i,sum=1;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
sum*=i;
while(sum%10==0)
{
sum/=10;
}
sum%=10;
}
printf("%d\n",sum);
return 0;
}