题目描述
输入一个正整数n。输出n!的最高位上的数字。
输入
输入一个正整数n(n不超过1000)。
输出
输出n!的最高位上的数字。
样例输入 Copy
1000
样例输出 Copy
4
提示
注意double类型溢出问题。
#include<stdio.h>
#include<math.h>
int main()
{
int n,i;
double sum=1;
scanf("%d",&n);
i=1;
while(n--)//n次循环。
{
while(sum>100)//当sum大于100时也就是5以及5的阶乘以后 sum后面的0都没有用
{
sum=sum/10;//所以sum 大于100就除以10。
}
sum=sum*i;
i++;
}
while(sum>10)//上面的循环结束以后sum小于100大于10.
{
sum=sum/10;//sum大于10的时候除以10,最后得到一个小数
}
printf("%d",(int)sum);//把sum化成整数、
}