思路:一开始想的字符串或者数组,但是仔细一想这么大的数还是阶乘,算出来肯定不现实。所以从只计算位数的角度思考了一下,直觉用对数可以降低计算成本。具体思路参见https://blog.csdn.net/wy_wind/article/details/41264203
附代码:
#include <iostream>
#include <math.h>
using namespace std;
int main(){
int N,k;
cin>>N;
while(N){
cin>>k;
double result=0;
for(int i=1;i<=k;i++){
result += log10(double(i));
}
int digit = int(result)+1;
cout<<digit<<endl;
N--;
}
}