杭电ACM1066
#include<stdio.h>
int
main()
{
long N,i,sum,k;
while(scanf("%ld",&N)!=EOF){
if(N==0){
printf("%d",N);
printf("\n");
}
else {
sum=1;
for(i=1;i<=N;i++){
sum=sum*i;
k=sum%10;
while(k==0){
sum=sum/10;
k=sum%10;
}
sum=k;
}
printf("%ld",sum);
printf("\n");
}
}
return 0;
}
http://acm.hdu.edu.cn/showproblem.php?pid=1066
意思就是求N!的最后一个非0数字
我的思路是这样的
比如6!
首先是1,再是2*1=2,,再是3*2=6,再是4*6=24,再用5*4=20,由于最后一个为0,再用6*2=12
所以最后的结果为2,结果是对的,这是我的思路,但还是对有的数不适用,不明白为什么?