题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1018
求n!长度
求x十进制下长度为trunc(lg(x))+1
因为lg(x*y)=lg(x)+lg(y)
所以1~n枚举一下把lg(i)相加最后向下取整加一就是答案
贴代码
var i,j,n,x:longint;
ans:double;
begin
// assign(input,'1018.in');reset(input);
// assign(output,'1018.out');rewrite(output);
read(n);
for i:=1 to n do
begin
read(x);ans:=0;
for j:=1 to x do ans:=ans+ln(j)/ln(10);
ans:=trunc(ans)+1;
writeln(ans:0:0);
end;
// close(input);close(output);
end.
【写的有漏洞的,欢迎路过大神吐槽】
2017/08/03 18:04:28
Ending.