题意:n!的结果由多少位组成。
假设10^x近似n!,则x=lg(n!),展开x=lg(n)+lg(n-1)+lg(n-2)+...+lg1。
代码:
#include<stdio.h> #include<math.h> double solve(int n) { double cnt=0; for(int i=2;i<=n;i++) { cnt+=log10(i); } return cnt; } int main() { int cas,n; scanf("%d",&cas); while(cas--) { scanf("%d",&n); printf("%d\n",(int)solve(n)+1); } return 0; }