Big Number--hdu1018(数学)
http://acm.hdu.edu.cn/showproblem.php?pid=1018
题目大意 : 求一个数的阶乘的位数
公式log10(n!)=log10(1)+log10(2)+log10(3)+log10(4)...+log10(n)
有这公式 一切都看起来简单了一大把
#include <iostream> #include <queue> #include <cstdio> #include <cstring> #include <cstdlib> #include <stack> #include <cmath> #include <algorithm> using namespace std; #define N 1e7+7 #define memset(a,b) memset(a,b,sizeof(a)) int main() { int T; scanf("%d",&T); while(T--) { double sum=0; int n; scanf("%d",&n); for(int i=1;i<=n;i++) { sum+=log10(i); } printf("%d\n",(int)(sum+1)); } return 0; }