题意:问你 n的阶乘 第一个超过10000位的n是多少。
因为 n!=n*(n-1) * (n-2)* ……*2 *1
然后如果求十进制下有多少位 即对10取对数然后+1
所以总的长度就是 log10(n)+log10(n-1)+log10(n-2)+……+log10(1)+1 注意最后这个+1很重要
所以代码如下:
all是长度
using namespace std;
int main() {
int i=1;
double all=0.0;
while(1){
all+=(log10(i));
if((int)all+1>=10000) break;
i++;
}
printf("%d\n",i);
return 0;
}