zoukankan      html  css  js  c++  java
  • 2018年全国多校算法寒假训练营练习比赛(第三场)A.不凡的夫夫(斯特灵公式)

    链接:https://www.nowcoder.net/acm/contest/75/A
    来源:牛客网

    题目描述

    夫夫有一天对一个数有多少位数感兴趣,但是他又不想跟凡夫俗子一样,
    所以他想知道给一个整数n,求n!的在8进制下的位数是多少位。

    输入描述:

    第一行是一个整数t(0<t<=1000000)(表示t组数据)
    接下来t行,每一行有一个整数n(0<=n<=10000000)

    输出描述:

    输出n!在8进制下的位数。
    示例1

    输入

    3
    4
    2
    5

    输出

    2
    1
    3

    分析:查询的次数非常多,且直接开数组进行预处理会超内存
    这里用到斯特灵公式。

    八进制下的位数即log8(x)+1,log8用换底公式得到
    代码如下:
    #include <cstdio>
    #include <algorithm>
    #include <iostream>
    #include <vector>
    #include <cstring>
    #include <cmath>
    using namespace std;
    typedef long long LL;
    const double e = 2.718281828459;
    const double Pi=acos(-1.0);
    int main()
    {
        LL t,n,ans;
        scanf("%lld",&t);
        while(t--)
        {
             
           scanf("%lld",&n);
             if(n==0)
           {
            puts("1");
            continue;
           }
           ans=(log10((2*Pi*n))/log10(8.0))/2+n*(log10(n/e)/log10(8.0))+1;
           printf("%lld
    ",ans);
        }
        return 0;
    }
  • 相关阅读:
    HTML标签
    进程&线程&协程
    04 jQuery的属性操作
    03 jQuery动画效果
    02 jQuery的选择器
    01 jQuery的介绍
    软件测试入门-测试模型(V型 W型 H型)
    软件测试概述
    软件测试基础理论
    17 案例
  • 原文地址:https://www.cnblogs.com/a249189046/p/8416790.html
Copyright © 2011-2022 走看看