HDU 1018 Big Number
题目大意:求一个数的阶乘的位数。
单词积累:factorial 阶乘
题解:我们知道log10(n!)+1就是n的阶乘的位数,转化一下,log10(n!)+1=log10(1)+log10(2)+log10(3)+……+1;
#include <cstdio>
#include <cmath>
int main(){
int n;
scanf("%d",&n);
while(n--){
int m;
double len=0;
scanf("%d",&m);
for(int i=1; i<m+1; i++)
len+=(log10(i+0.0));
printf("%d\n",int(len)+1);
}
return 0;
}
总结:double(log(i)/log(10))-->log10(i+0.0)
愿你出走半生,归来仍是少年

浙公网安备 33010602011771号