NYOJ 69 数的长度 (log的使用)

来源:互联网 发布:java jdk 32官网下载 编辑:程序博客网 时间:2024/06/05 15:36

数的长度

时间限制:3000 ms  |  内存限制:65535 KB
难度:1
描述

    N!阶乘是一个非常大的数,大家都知道计算公式是N!=N*(N-1)······*2*1.现在你的任务是计算出N!的位数有多少(十进制)?

输入
首行输入n,表示有多少组测试数据(n<10)
随后n行每行输入一组测试数据 N( 0 < N < 1000000 )
输出
对于每个数N,输出N!的(十进制)位数。
样例输入
31332000
样例输出
11130271
注 - 此题为 : NYOJ 69 数的长度

     log的使用  其值为浮点型  (而要求的长度为为整形)

例如     1*2*3*4的位数为log10(1)+log10(2)+log10(3)+log10(4),转化为整形再加上 1

已AC代码:

#include<cstdio>#include<cmath>int main(){int T,i,n;scanf("%d",&T);while(T--){double s;scanf("%d",&n);s=0;for(i=1;i<=n;++i)s+=log10(i);int m=(int)s+1;printf("%d\n",m);}return 0;}

0 0
原创粉丝点击