HDU1018(数学题)

来源:互联网 发布:转发长视频软件 编辑:程序博客网 时间:2024/05/29 08:16

题意,
数据数目T
接下来T行,每行一个数字n,输出n!的位数;
code:

一前做过,现在突然一看还有些懵,学的还不扎实啊…
数学题的做法
:
n!用科学计数法表示.x表示整数,y表示小数

这里写图片描述
这样只要暴力求出公式左边,然后取整加一输出就OK了

#include<cstdio>#include<cmath>int main(){    int n,T;    double res=0;    while(scanf("%d",&T)!=EOF)    {        while(T--)        {            scanf("%d",&n);            res=0;            for(int i=1;i<=n;i++)                res+=log10(i*1.00);           // printf("%f\n",res);            printf("%d\n",int(res)+1);        }    }    return 0;}