HDU1018 Big Number
Posted ac-ac
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDU1018 Big Number相关的知识,希望对你有一定的参考价值。
题意:求 N!的位数。
思路: 由 ,可知。
于是两边取对数得到。
最后的结果就是:。
ps:带有注释的是另一种做法。
#include<cmath> #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; #define PI acos(-1.0) #define e exp(1) int main(void) { int t; scanf("%d",&t); while(t--) { double sum = 0.0; int n; scanf("%d",&n); // for(int i = 1; i <= n; i++) // sum = sum + log10(i); // printf("%d ",(int)sum+1); double s = log10(sqrt(2*PI*n)) + n*log10(n) - n*log10(e); printf("%d ",(int)s+1); } return 0; }
以上是关于HDU1018 Big Number的主要内容,如果未能解决你的问题,请参考以下文章