求某整数阶乘的位数。
竟然不知道,原来数字的位数的计算也这么纠结。原来除10的办法有点陈旧啊,看了看人家写的。
#include<iostream>
#include<math.h>
double pi=3.14159265358979;
double e=2.718281828459045;
using namespace std;
int main(){
int count,num;
cin>>count;
while(count--){
cin>>num;
if(num==1||num==0){
cout<<"1"<<endl;
}else
cout<< (int)ceil(log10(sqrt(2 * pi * num)) + num*log10(num/e))<<endl;
}
return 0;
}