zzuli 阶乘的最高位

zzuli 阶乘的最高位

令 N!=x.yyzz*10^k;
两边对10求对数 —> log10(N!)=log10(x.yyzz)+k;
x.yyzz=10^(log10(N!)-(int)log10(N!))
log10(N!)=log10(1)+log10(2)+...log10(N);

include

include

include

include

include

include

using namespace std;
#define inf 0x3f3f3f3f
typedef long long LL;
int main()
{
int n;
double a=0.0;
scanf("%d",&n);
for(int i=1; i<=n; i++)
{
a += log10(i);
a -= (int)a;
}
printf("%d\n", (int)pow(10, a));
return 0;
}

posted @ 2016-03-08 12:24  zzuli_柚子  阅读(412)  评论(0)    收藏  举报