题目如图
解题思路:
如果直接输出阶乘再求最后非零数,阶乘过大,会出现溢出的情况,因此在每次求阶乘的时候会把数截取掉,然后在缩放
#include <stdio.h>
#include <math.h>
int main(){
int i,n,sum=1;
scanf("%d",&n);
if(n==0)
printf("%d",sum);
else{
for(i=1;i<=n;i++){
sum*=i;
while(sum%10==0){
sum/=10;
}
sum=sum%1000;
}
printf("%d",sum%10);
}
return 0;
}