• hdu 1018


    #include<iostream>
    #include<cstdio>
    #include<cmath>
    using namespace std;
    int main()
    {
        int i,n,cas;
        double  f;
        cin>>cas;
        while(cas--)
        {
            f=0.0;
            cin>>n;
            for(i=2;i<=n;i++)
                f+=log10(i*1.0);
            int ans=f+1;
            cout<<ans<<endl;
        }
        return 0;

    }

    /******还是比较有意思的一道题目,比如123456=10^5+1.23456,取对数后为5+log10(1.23456)所以位数为取对数后的小数取整

    再加1,不过算阶乘时要注意,当n很大时可能会溢出,所以还是得转换为对数,只需要进行n次加法和乘法就行了,

    再次体会到了对数的神奇,记得加头文件cmath***/

    你说,我们都会幸福的,对吧?
  • 相关阅读:
    Halcon 笔记3 形态学
    Halcon 笔记2 Blob分析
    Halcon 笔记1
    线程
    Fn+F1-F12,避免使用FN+
    改变与接受
    PictureBox使用异常
    (一)Knockout
    (二)HTML5
    (一)chrome扩展
  • 原文地址:https://www.cnblogs.com/smilesundream/p/6642583.html
Copyright © 2020-2023  润新知