题意:求n的阶乘从个位开始的第一位非零整数是多少?
思路:开始看到10000的阶乘以为要用java了,后来想一想只要求一位数然后就想到了用后几位相乘,结果过了
#include<stdio.h>
#define maxN 100010
#define A 100000000000
int key[maxN];
int main()
{
long long m=1;
key[1]=1;key[0]=1;
for(int i=2;i<=10000;i++){
m=m*i;
while(m%10==0)m/=10;
key[i]=m%10;
m%=A;
}
int n;
while(~scanf("%d",&n))
printf("%5d -> %d\n",n,key[n]);
}