问题描述

原题链接

输入 N 求 N 的阶乘的 10 进制表示的长度。例如 6! = 720,长度为 3。

解决思路

1*2*3*4 的长度等于 ⌊log101 +log102 + log103 + log104 + 1⌋

具体代码

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
#include <iostream>
#include <cmath>

using namespace std;


int main() {
int n;
cin >> n;
double s = 1;
for (int i = 1; i <= n; i++) {
    s += log10(i);
}
cout << (int)s << endl;
return 0;
}