求一个数阶乘的位数&N^N的位数(数学)
n!的位数=log10(1)+log10(2)+......+log10(n)取整后加一
1 # include <iostream> 2 # include <math.h> 3 4 using namespace std; 5 6 int main(void) 7 { 8 int n, t; 9 cin >> n; 10 while(n--) 11 { 12 cin >> t; 13 double sum = 0; 14 for(int i = 1; i <= t; i++) 15 { 16 sum += log10(i); 17 } 18 cout << ((int)sum)+1 << endl; 19 } 20 21 return 0; 22 }
N^N的位数
1 digit=(long long int)(n*log10(n))+1;//n^n的位数 这里是+1