原题链接
本题就是输入n 求 n! 有几位。
数学原理就是
如 1000!的位数就是 log10(1)+log10(2)+log10(3)+ ... + log10(999)+log10(1000) 后的值 向下取整 后 再 加 1
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <cstdlib>
#include <cctype>
#include <string>
#include <vector>
#include <queue>
#include <algorithm>
using namespace std;
int main()
{
int n, i, cases;
double temp,resultn;
cin>>cases;
while (cases--)
{
cin>>n;
resultn = 0;
for (i=1; i<=n; i++)
{
temp = log10((double)i);
resultn += temp;
}
resultn = floor(resultn) + 1;
cout<<(int)resultn<<endl;
}
return 0;
}
1万+

被折叠的 条评论
为什么被折叠?



