结果填空:阶乘位数

蒜头君对阶乘产生了兴趣,他列出了前 1010 个正整数的阶乘以及对应位数的表:

nnn!n!位数
1 1 1
2 2 1
3 6 1
4 24 2
5 120 3
6 720 3
7 5040 4
8 40320 5
9 362880 6
10 3628800 7

对于蒜头君来说,再往后就很难计算了。他试图寻找阶乘位数的规律,但是失败了。现在请你帮他计算出第一个正整数的阶乘位数大于等于 1000010000 的数是多少,即求最小的正整数 nn 满足 n!n! 的位数大于等于 1000010000。

样例输入

样例输出



套用公式 = log10(1)+log10(2)+...+log(10)+1 再取整 答案为3249
 1 #include<iostream>
 2 #include<algorithm>
 3 #include<cmath>
 4 using namespace std;
 5 int main()
 6 {
 7     double s=0;
 8     for(int i=1;;i++){
 9         s+=log10(i);
10         if(int (s+1)>=10000){
11             cout<<i<<endl;
12             break;
13         }
14     }
15     return 0;
16 }

 



posted @ 2019-03-19 18:42  wydxry  阅读(580)  评论(2编辑  收藏  举报
Live2D