题目大意:
将一个数开阶乘后得到的值,来求这个值的位数
n! = 1*2*3*4...*n
对于求一个数的位数的方法为ans = lg(n!) + 1
那么就可以看作 ans = lg(1) + lg(2) .......+ lg(n) + 1
#include <cstdio> #include <cmath> const double eps = 1e-9; int main() { int t; scanf("%d" , &t); while(t--){ int n; scanf("%d" , &n); double ans = 1; for(int i = 1 ; i<=n ; i++) ans += log10(i * 1.0); int p = (int) ans; int ret = 0; if((p+1 - ans) <= eps) ret = p+1; else ret = p; printf("%d\n" , ret); } return 0; }
我还在坚持,我还未达到我所想,梦~~一直在