HDU 1018 Big Number

来源:互联网 发布:org.apache.httpjar包 编辑:程序博客网 时间:2024/05/18 03:37

题意:计算N!的位数,如n为6时 n!为720 位数就是3.

做法:直接暴力。log10(n!)=log10(n)+log10(n-1)+....+log10(1);

这题正好卡在时间线上,导致一样的代码交了2次才AC

 

#include<stdio.h>
#include<cmath>
#include<string.h>
#include<iostream>
using namespace std;
int main()
{
    int t;
    scanf("%d",&t);
        while(t--)
        {
            int n;
            scanf("%d",&n);
            double sum=0;
            for(int i=1;i<=n;i++)
            {
                sum+=log10(i);
            }
            printf("%d\n",int(sum)+1);
        }
}

0 0
原创粉丝点击